home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / unix / volume12 / cnews / part01 next >
Encoding:
Internet Message Format  |  1987-10-19  |  61.9 KB

  1. Subject:  v12i026:  C News alpha release, Part01/14
  2. Newsgroups: comp.sources.unix
  3. Sender: sources
  4. Approved: rs@uunet.UU.NET
  5.  
  6. Submitted-by: utzoo!henry (Henry Spencer)
  7. Posting-number: Volume 12, Issue 26
  8. Archive-name: cnews/part01
  9.  
  10. [  This is a re-write from the ground up of netnews for speed and
  11.     efficiency.  It's a complete re-implmentation, able to learn from the
  12.     previous versions.  It is an *ALPHA* release.  There are extensive
  13.     caveats in the README files, which appear throughout.  Their is a
  14.     paper in the Washington Usenix proceedings that describe the things
  15.     Henry and Geoff did.  --r$  ]
  16.  
  17. #! /bin/sh
  18. # This is a shell archive.  Remove anything before this line, then unpack
  19. # it by saving it into a file and typing "sh file".  To overwrite existing
  20. # files, type "sh file -c".  You can also feed this as standard input via
  21. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  22. # will see the following message at the end:
  23. #        "End of archive 1 (of 14)."
  24. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  25. echo Making directories
  26. mkdir batch batch/b.test expire gngp include input lib.proto lib.proto/rn
  27. mkdir lib.proto/batch lib.proto/control lib.proto/syscmd libc libc/strings
  28. mkdir libc/stdio.fast libc/memcpy.fast libc/memcpy.fast/src libcnews mail
  29. mkdir mail/coder mail/b.compat newsbin.proto newsbin.proto/control
  30. mkdir newsbin.proto/maint newsbin.proto/syscmd newshist rna rna/lib rna/man
  31. mkdir rna/notes rnews rnews/vers rnews/vers/bsd42 rnews/vers/v7 rnews/vers/v8
  32. mkdir rnews/vers/usg rnews/anews rnews/man rnews/test rnews/test/demo
  33. mkdir rnews/test/demo/arts rnews/test/lib rnews/test/newsbatch
  34. mkdir rnews/test/spool rnews/ads rnews/sh rnews/speed rnews/speed/disk
  35. mkdir rnews/speed/mem rnews/bugs rnews/bugs/zeropad rnews/bugs/zeropad/okay
  36. mkdir rnews/bugs/zeropad/bugged rnews/setnewsids time
  37. if test -f 'batch/b.test/batchmunch' -a "${1}" != "-c" ; then 
  38.   echo shar: Will not clobber existing file \"'batch/b.test/batchmunch'\"
  39. else
  40. echo shar: Extracting \"'batch/b.test/batchmunch'\" \(4 characters\)
  41. sed "s/^X//" >'batch/b.test/batchmunch' <<'END_OF_FILE'
  42. Xcat
  43. END_OF_FILE
  44. if test 4 -ne `wc -c <'batch/b.test/batchmunch'`; then
  45.     echo shar: \"'batch/b.test/batchmunch'\" unpacked with wrong size!
  46. fi
  47. # end of 'batch/b.test/batchmunch'
  48. fi
  49. if test -f 'batch/b.test/batchsize' -a "${1}" != "-c" ; then 
  50.   echo shar: Will not clobber existing file \"'batch/b.test/batchsize'\"
  51. else
  52. echo shar: Extracting \"'batch/b.test/batchsize'\" \(8 characters\)
  53. sed "s/^X//" >'batch/b.test/batchsize' <<'END_OF_FILE'
  54. Xecho 25
  55. END_OF_FILE
  56. if test 8 -ne `wc -c <'batch/b.test/batchsize'`; then
  57.     echo shar: \"'batch/b.test/batchsize'\" unpacked with wrong size!
  58. fi
  59. # end of 'batch/b.test/batchsize'
  60. fi
  61. if test -f 'batch/b.test/batchxmit' -a "${1}" != "-c" ; then 
  62.   echo shar: Will not clobber existing file \"'batch/b.test/batchxmit'\"
  63. else
  64. echo shar: Extracting \"'batch/b.test/batchxmit'\" \(31 characters\)
  65. sed "s/^X//" >'batch/b.test/batchxmit' <<'END_OF_FILE'
  66. X( echo ------ ; cat ) >>output
  67. END_OF_FILE
  68. if test 31 -ne `wc -c <'batch/b.test/batchxmit'`; then
  69.     echo shar: \"'batch/b.test/batchxmit'\" unpacked with wrong size!
  70. fi
  71. # end of 'batch/b.test/batchxmit'
  72. fi
  73. if test -f 'batch/b.test/goodoutput' -a "${1}" != "-c" ; then 
  74.   echo shar: Will not clobber existing file \"'batch/b.test/goodoutput'\"
  75. else
  76. echo shar: Extracting \"'batch/b.test/goodoutput'\" \(273 characters\)
  77. sed "s/^X//" >'batch/b.test/goodoutput' <<'END_OF_FILE'
  78. X------
  79. X#! rnews 2
  80. X0
  81. X------
  82. X#! rnews 2
  83. X1
  84. X#! rnews 2
  85. X2
  86. X------
  87. X#! rnews 2
  88. X3
  89. X------
  90. X#! rnews 2
  91. X4
  92. X------
  93. X#! rnews 2
  94. X5
  95. X#! rnews 2
  96. X6
  97. X------
  98. X#! rnews 2
  99. X7
  100. X------
  101. X#! rnews 2
  102. X8
  103. X=== togo ===
  104. X13 113
  105. X=== togo.2 ===
  106. X9 119
  107. X=== togo.3 ===
  108. X10 110
  109. X=== togo.4 ===
  110. X11 111
  111. X=== togo.5 ===
  112. X12 112
  113. END_OF_FILE
  114. if test 273 -ne `wc -c <'batch/b.test/goodoutput'`; then
  115.     echo shar: \"'batch/b.test/goodoutput'\" unpacked with wrong size!
  116. fi
  117. # end of 'batch/b.test/goodoutput'
  118. fi
  119. if test -f 'batch/b.test/queuelen' -a "${1}" != "-c" ; then 
  120.   echo shar: Will not clobber existing file \"'batch/b.test/queuelen'\"
  121. else
  122. echo shar: Extracting \"'batch/b.test/queuelen'\" \(7 characters\)
  123. sed "s/^X//" >'batch/b.test/queuelen' <<'END_OF_FILE'
  124. Xecho 2
  125. END_OF_FILE
  126. if test 7 -ne `wc -c <'batch/b.test/queuelen'`; then
  127.     echo shar: \"'batch/b.test/queuelen'\" unpacked with wrong size!
  128. fi
  129. # end of 'batch/b.test/queuelen'
  130. fi
  131. if test -f 'batch/b.test/queuemax' -a "${1}" != "-c" ; then 
  132.   echo shar: Will not clobber existing file \"'batch/b.test/queuemax'\"
  133. else
  134. echo shar: Extracting \"'batch/b.test/queuemax'\" \(7 characters\)
  135. sed "s/^X//" >'batch/b.test/queuemax' <<'END_OF_FILE'
  136. Xecho 9
  137. END_OF_FILE
  138. if test 7 -ne `wc -c <'batch/b.test/queuemax'`; then
  139.     echo shar: \"'batch/b.test/queuemax'\" unpacked with wrong size!
  140. fi
  141. # end of 'batch/b.test/queuemax'
  142. fi
  143. if test -f 'batch/b.test/roomfor' -a "${1}" != "-c" ; then 
  144.   echo shar: Will not clobber existing file \"'batch/b.test/roomfor'\"
  145. else
  146. echo shar: Extracting \"'batch/b.test/roomfor'\" \(8 characters\)
  147. sed "s/^X//" >'batch/b.test/roomfor' <<'END_OF_FILE'
  148. Xecho 33
  149. END_OF_FILE
  150. if test 8 -ne `wc -c <'batch/b.test/roomfor'`; then
  151.     echo shar: \"'batch/b.test/roomfor'\" unpacked with wrong size!
  152. fi
  153. # end of 'batch/b.test/roomfor'
  154. fi
  155. if test -f 'batch/b.test/test.togo' -a "${1}" != "-c" ; then 
  156.   echo shar: Will not clobber existing file \"'batch/b.test/test.togo'\"
  157. else
  158. echo shar: Extracting \"'batch/b.test/test.togo'\" \(76 characters\)
  159. sed "s/^X//" >'batch/b.test/test.togo' <<'END_OF_FILE'
  160. X1 10
  161. X2 10
  162. X3 10
  163. X4 57
  164. X5 10
  165. X6 10
  166. X7 117
  167. X8 118
  168. X9 119
  169. X10 110
  170. X11 111
  171. X12 112
  172. X13 113
  173. END_OF_FILE
  174. if test 76 -ne `wc -c <'batch/b.test/test.togo'`; then
  175.     echo shar: \"'batch/b.test/test.togo'\" unpacked with wrong size!
  176. fi
  177. # end of 'batch/b.test/test.togo'
  178. fi
  179. if test -f 'batch/b.test/test.togo.3' -a "${1}" != "-c" ; then 
  180.   echo shar: Will not clobber existing file \"'batch/b.test/test.togo.3'\"
  181. else
  182. echo shar: Extracting \"'batch/b.test/test.togo.3'\" \(5 characters\)
  183. sed "s/^X//" >'batch/b.test/test.togo.3' <<'END_OF_FILE'
  184. X0 99
  185. END_OF_FILE
  186. if test 5 -ne `wc -c <'batch/b.test/test.togo.3'`; then
  187.     echo shar: \"'batch/b.test/test.togo.3'\" unpacked with wrong size!
  188. fi
  189. # end of 'batch/b.test/test.togo.3'
  190. fi
  191. if test -f 'batch/batchsize' -a "${1}" != "-c" ; then 
  192.   echo shar: Will not clobber existing file \"'batch/batchsize'\"
  193. else
  194. echo shar: Extracting \"'batch/batchsize'\" \(152 characters\)
  195. sed "s/^X//" >'batch/batchsize' <<'END_OF_FILE'
  196. X# How big should the batches be?  100k becomes 50k or so after compression,
  197. X# which is circa 10 minutes at 1200 baud -- a reasonable lump.
  198. X
  199. Xecho 100000
  200. END_OF_FILE
  201. if test 152 -ne `wc -c <'batch/batchsize'`; then
  202.     echo shar: \"'batch/batchsize'\" unpacked with wrong size!
  203. fi
  204. # end of 'batch/batchsize'
  205. fi
  206. if test -f 'batch/batchxmit' -a "${1}" != "-c" ; then 
  207.   echo shar: Will not clobber existing file \"'batch/batchxmit'\"
  208. else
  209. echo shar: Extracting \"'batch/batchxmit'\" \(256 characters\)
  210. sed "s/^X//" >'batch/batchxmit' <<'END_OF_FILE'
  211. X# Transmit batch to $1.  -r for no immediate call, -gd to specify grade
  212. X# of traffic as fairly low, -z to suppress return of exit-status-0 report.
  213. X#
  214. X# The 'exec' cuts down the number of processes active for this simple case.
  215. X
  216. Xexec uux - -r -gd -z $1!rnews
  217. END_OF_FILE
  218. if test 256 -ne `wc -c <'batch/batchxmit'`; then
  219.     echo shar: \"'batch/batchxmit'\" unpacked with wrong size!
  220. fi
  221. # end of 'batch/batchxmit'
  222. fi
  223. if test -f 'batch/queuelen' -a "${1}" != "-c" ; then 
  224.   echo shar: Will not clobber existing file \"'batch/queuelen'\"
  225. else
  226. echo shar: Extracting \"'batch/queuelen'\" \(372 characters\)
  227. sed "s/^X//" >'batch/queuelen' <<'END_OF_FILE'
  228. X# Find size of current queue of news outbound to $1.
  229. X#
  230. X# You'll have to change this:  you almost certainly don't have uuoutq, but
  231. X# you may have something similar.
  232. X#
  233. X# Just "echo 0" will do if you don't care about queue lengths.
  234. X
  235. XPATH=/bin:/usr/bin ; export PATH
  236. Xit=`uuoutq | awk "\\$3 == \"news\" && \\$2 == \"$1\" {print \\$1}"`
  237. Xcase $it
  238. Xin
  239. X    '')
  240. X    it=0
  241. X    ;;
  242. Xesac
  243. Xecho $it
  244. END_OF_FILE
  245. if test 372 -ne `wc -c <'batch/queuelen'`; then
  246.     echo shar: \"'batch/queuelen'\" unpacked with wrong size!
  247. fi
  248. # end of 'batch/queuelen'
  249. fi
  250. if test -f 'batch/queuemax' -a "${1}" != "-c" ; then 
  251.   echo shar: Will not clobber existing file \"'batch/queuemax'\"
  252. else
  253. echo shar: Extracting \"'batch/queuemax'\" \(210 characters\)
  254. sed "s/^X//" >'batch/queuemax' <<'END_OF_FILE'
  255. X# What is the maximum number of batches that should be queued for a site?
  256. X# Somewhat arbitrary; really high values can eat disk in the event of a link
  257. X# outage, really low values can impede news flow.
  258. X
  259. Xecho 10
  260. END_OF_FILE
  261. if test 210 -ne `wc -c <'batch/queuemax'`; then
  262.     echo shar: \"'batch/queuemax'\" unpacked with wrong size!
  263. fi
  264. # end of 'batch/queuemax'
  265. fi
  266. if test -f 'expire/active.p' -a "${1}" != "-c" ; then 
  267.   echo shar: Will not clobber existing file \"'expire/active.p'\"
  268. else
  269. echo shar: Extracting \"'expire/active.p'\" \(186 characters\)
  270. sed "s/^X//" >'expire/active.p' <<'END_OF_FILE'
  271. Xfoo.one 00100 00000 m
  272. Xbar.one 00100 00000 y
  273. Xbletch.one 00100 00000 m
  274. Xfoo.two 00100 00000 m
  275. Xbar.two 00100 00000 m
  276. Xbletch.four 00100 00000 m
  277. Xfoo.three 00100 00000 y
  278. Xbar.five 00100 00000 y
  279. END_OF_FILE
  280. if test 186 -ne `wc -c <'expire/active.p'`; then
  281.     echo shar: \"'expire/active.p'\" unpacked with wrong size!
  282. fi
  283. # end of 'expire/active.p'
  284. fi
  285. if test -f 'expire/histconv' -a "${1}" != "-c" ; then 
  286.   echo shar: Will not clobber existing file \"'expire/histconv'\"
  287. else
  288. echo shar: Extracting \"'expire/histconv'\" \(287 characters\)
  289. sed "s/^X//" >'expire/histconv' <<'END_OF_FILE'
  290. X#! /bin/sh
  291. X# Convert a B history file into a C one, naively:  makes no
  292. X# attempt to supply sensible values for expiry date.  See mkhistory
  293. X# for a way to do it right, at rather greater expense.
  294. X
  295. XPATH=/bin:/usr/bin ; export PATH
  296. X
  297. Xawk -F'    ' 'BEGIN { OFS=FS } { print $1, $2 "~-", $3 }' $*
  298. END_OF_FILE
  299. if test 287 -ne `wc -c <'expire/histconv'`; then
  300.     echo shar: \"'expire/histconv'\" unpacked with wrong size!
  301. fi
  302. # end of 'expire/histconv'
  303. fi
  304. if test -f 'expire/histdups' -a "${1}" != "-c" ; then 
  305.   echo shar: Will not clobber existing file \"'expire/histdups'\"
  306. else
  307. echo shar: Extracting \"'expire/histdups'\" \(369 characters\)
  308. sed "s/^X//" >'expire/histdups' <<'END_OF_FILE'
  309. X# Awk program to merge history lines for the same article in a sorted history
  310. X# file (such as is generated during the mkhistory processing).
  311. XBEGIN { FS = "\t" ; OFS = "\t" ; mesgid = "" }
  312. X{
  313. X    if ($1 != mesgid) {
  314. X        if (mesgid != "")
  315. X            print mesgid, dates, names
  316. X        mesgid = $1
  317. X        dates = $2
  318. X        names = $3
  319. X    } else
  320. X        names = names " " $4
  321. X}
  322. XEND { print mesgid, dates, names }
  323. END_OF_FILE
  324. if test 369 -ne `wc -c <'expire/histdups'`; then
  325.     echo shar: \"'expire/histdups'\" unpacked with wrong size!
  326. fi
  327. # end of 'expire/histdups'
  328. fi
  329. if test -f 'expire/mkhistory' -a "${1}" != "-c" ; then 
  330.   echo shar: Will not clobber existing file \"'expire/mkhistory'\"
  331. else
  332. echo shar: Extracting \"'expire/mkhistory'\" \(353 characters\)
  333. sed "s/^X//" >'expire/mkhistory' <<'END_OF_FILE'
  334. X# mkhistory spooldir - regenerate a news history file from the spool files
  335. X
  336. XNEWSCTL=${NEWSCTL-/usr/lib/news}
  337. XNEWSBIN=${NEWSBIN-/usr/lib/newsbin}
  338. XNEWSARTS=${NEWSARTS-/usr/spool/news}
  339. XPATH=$NEWSBIN/expire:/bin:/usr/bin ; export PATH
  340. X
  341. Xcd $NEWSARTS
  342. Xfind * -type f -name '[0-9]*' -print | xargs histinfo | sort |
  343. X    awk -f $NEWSBIN/expire/histdups | histslash
  344. END_OF_FILE
  345. if test 353 -ne `wc -c <'expire/mkhistory'`; then
  346.     echo shar: \"'expire/mkhistory'\" unpacked with wrong size!
  347. fi
  348. # end of 'expire/mkhistory'
  349. fi
  350. if test -f 'expire/testctl.p' -a "${1}" != "-c" ; then 
  351.   echo shar: Will not clobber existing file \"'expire/testctl.p'\"
  352. else
  353. echo shar: Extracting \"'expire/testctl.p'\" \(117 characters\)
  354. sed "s/^X//" >'expire/testctl.p' <<'END_OF_FILE'
  355. Xfoo.one,bar.one,bletch.one    x    10.5    @
  356. Xfoo,bar                m    15    X/mod
  357. Xfoo                u    5-15    X/unmod
  358. Xall                m    5-10-20    X/mod
  359. Xall                x    30    -
  360. END_OF_FILE
  361. if test 117 -ne `wc -c <'expire/testctl.p'`; then
  362.     echo shar: \"'expire/testctl.p'\" unpacked with wrong size!
  363. fi
  364. # end of 'expire/testctl.p'
  365. fi
  366. if test -f 'expire/todo' -a "${1}" != "-c" ; then 
  367.   echo shar: Will not clobber existing file \"'expire/todo'\"
  368. else
  369. echo shar: Extracting \"'expire/todo'\" \(124 characters\)
  370. sed "s/^X//" >'expire/todo' <<'END_OF_FILE'
  371. Xmark as expired?
  372. Xcheck 2.11 expire options
  373. Xtest checker
  374. Xhooks into dbm simulation for sysv
  375. Xcross-posting tests
  376. Xmake install
  377. END_OF_FILE
  378. if test 124 -ne `wc -c <'expire/todo'`; then
  379.     echo shar: \"'expire/todo'\" unpacked with wrong size!
  380. fi
  381. # end of 'expire/todo'
  382. fi
  383. if test -f 'gngp/makefile' -a "${1}" != "-c" ; then 
  384.   echo shar: Will not clobber existing file \"'gngp/makefile'\"
  385. else
  386. echo shar: Extracting \"'gngp/makefile'\" \(254 characters\)
  387. sed "s/^X//" >'gngp/makefile' <<'END_OF_FILE'
  388. X# makefile for gngp
  389. X
  390. XDEFS = # -Dvoid=int
  391. XCFLAGS = $(DEFS) -O # -Z
  392. XLIBS= ../libcnews/libcnews.a ../libc/*.o
  393. XLINTFLAGS = $(DEFS) -ha
  394. X
  395. Xgngp: gngp.o
  396. X    $(CC) $(CFLAGS) gngp.o $(LIBS) -o $@
  397. Xlint:
  398. X    lint $(LINTFLAGS) gngp.c
  399. Xlintport:
  400. X    lint -p $(LINTFLAGS) gngp.c
  401. END_OF_FILE
  402. if test 254 -ne `wc -c <'gngp/makefile'`; then
  403.     echo shar: \"'gngp/makefile'\" unpacked with wrong size!
  404. fi
  405. # end of 'gngp/makefile'
  406. fi
  407. if test -f 'include/fgetmfs.h' -a "${1}" != "-c" ; then 
  408.   echo shar: Will not clobber existing file \"'include/fgetmfs.h'\"
  409. else
  410. echo shar: Extracting \"'include/fgetmfs.h'\" \(230 characters\)
  411. sed "s/^X//" >'include/fgetmfs.h' <<'END_OF_FILE'
  412. X/* values for fgetmfs flag */
  413. X#define CONT_NO 0        /* no continuations */
  414. X#define CONT_NOSPC 1        /* continue & remove leading whitespace */
  415. X#define CONT_SPC 2        /* continue & keep leading whitespace */
  416. X
  417. X/* exports */
  418. Xchar *fgetmfs();
  419. END_OF_FILE
  420. if test 230 -ne `wc -c <'include/fgetmfs.h'`; then
  421.     echo shar: \"'include/fgetmfs.h'\" unpacked with wrong size!
  422. fi
  423. # end of 'include/fgetmfs.h'
  424. fi
  425. if test -f 'input/goo' -a "${1}" != "-c" ; then 
  426.   echo shar: Will not clobber existing file \"'input/goo'\"
  427. else
  428. echo shar: Extracting \"'input/goo'\" \(63 characters\)
  429. sed "s/^X//" >'input/goo' <<'END_OF_FILE'
  430. X#! cunbatch
  431. X#! cunbatch
  432. X#! cunbatch
  433. Xfoo bar
  434. Xbletch
  435. X#! cunbatch
  436. END_OF_FILE
  437. if test 63 -ne `wc -c <'input/goo'`; then
  438.     echo shar: \"'input/goo'\" unpacked with wrong size!
  439. fi
  440. # end of 'input/goo'
  441. fi
  442. if test -f 'input/rnews' -a "${1}" != "-c" ; then 
  443.   echo shar: Will not clobber existing file \"'input/rnews'\"
  444. else
  445. echo shar: Extracting \"'input/rnews'\" \(249 characters\)
  446. sed "s/^X//" >'input/rnews' <<'END_OF_FILE'
  447. X#! /bin/sh
  448. X# Incoming-news spooling.
  449. X
  450. XNEWSCTL=${NEWSCTL-/usr/lib/news}
  451. XNEWSBIN=${NEWSBIN-/usr/lib/newsbin}
  452. XNEWSARTS=${NEWSARTS-/usr/spool/news}
  453. XPATH=$NEWSBIN/input:/bin:/usr/bin ; export PATH
  454. XNEWSUMASK=${NEWSUMASK-002}
  455. Xumask NEWSUMASK
  456. X
  457. Xnewsspool $*
  458. END_OF_FILE
  459. if test 249 -ne `wc -c <'input/rnews'`; then
  460.     echo shar: \"'input/rnews'\" unpacked with wrong size!
  461. fi
  462. # end of 'input/rnews'
  463. fi
  464. if test -f 'input/todo' -a "${1}" != "-c" ; then 
  465.   echo shar: Will not clobber existing file \"'input/todo'\"
  466. else
  467. echo shar: Extracting \"'input/todo'\" \(65 characters\)
  468. sed "s/^X//" >'input/todo' <<'END_OF_FILE'
  469. Xgeoff rnews
  470. Xfrontend should not assume that unknown is cleartext
  471. END_OF_FILE
  472. if test 65 -ne `wc -c <'input/todo'`; then
  473.     echo shar: \"'input/todo'\" unpacked with wrong size!
  474. fi
  475. # end of 'input/todo'
  476. fi
  477. if test -f 'lib.proto/control/ihave' -a "${1}" != "-c" ; then 
  478.   echo shar: Will not clobber existing file \"'lib.proto/control/ihave'\"
  479. else
  480. echo shar: Extracting \"'lib.proto/control/ihave'\" \(348 characters\)
  481. sed "s/^X//" >'lib.proto/control/ihave' <<'END_OF_FILE'
  482. X#! /bin/sh
  483. X# ihave - stub for unimplemented I-have/send-me protocol
  484. XNEWSCTL=${NEWSCTL-/usr/lib/news}; export NEWSCTL
  485. XNEWSBIN=${NEWSBIN-/usr/lib/newsbin}; export NEWSBIN
  486. XNEWSARTS=${NEWSARTS-/usr/spool/news}; export NEWSARTS
  487. XPATH=$NEWSCTL:$NEWSBIN:/bin:/usr/bin; export PATH
  488. X
  489. XSENDER="`newsreply`"
  490. Xecho I-have/send-me not implemented | mail "$SENDER"
  491. END_OF_FILE
  492. if test 348 -ne `wc -c <'lib.proto/control/ihave'`; then
  493.     echo shar: \"'lib.proto/control/ihave'\" unpacked with wrong size!
  494. fi
  495. # end of 'lib.proto/control/ihave'
  496. fi
  497. if test -f 'lib.proto/control/rmgroup' -a "${1}" != "-c" ; then 
  498.   echo shar: Will not clobber existing file \"'lib.proto/control/rmgroup'\"
  499. else
  500. echo shar: Extracting \"'lib.proto/control/rmgroup'\" \(321 characters\)
  501. sed "s/^X//" >'lib.proto/control/rmgroup' <<'END_OF_FILE'
  502. X#! /bin/sh
  503. X# rmgroup group - snuff group
  504. XF=/tmp/nc$$
  505. Xadmin=usenet
  506. X
  507. Xcat >$F
  508. XSENDER="`grep '^Sender:' $F | sed 's/^[^:]*: *//'`"
  509. Xcase "$SENDER" in
  510. X"")
  511. X    SENDER="`grep '^From:' $F | sed 's/^[^:]*: *//'`"
  512. X    ;;
  513. Xesac
  514. X
  515. X# tell the local usenet administrator to do it by hand
  516. Xecho "rmgroup $1 says $SENDER" | mail $admin
  517. X
  518. Xrm -f $F*
  519. END_OF_FILE
  520. if test 321 -ne `wc -c <'lib.proto/control/rmgroup'`; then
  521.     echo shar: \"'lib.proto/control/rmgroup'\" unpacked with wrong size!
  522. fi
  523. # end of 'lib.proto/control/rmgroup'
  524. fi
  525. if test -f 'lib.proto/control/rmgroup.man' -a "${1}" != "-c" ; then 
  526.   echo shar: Will not clobber existing file \"'lib.proto/control/rmgroup.man'\"
  527. else
  528. echo shar: Extracting \"'lib.proto/control/rmgroup.man'\" \(321 characters\)
  529. sed "s/^X//" >'lib.proto/control/rmgroup.man' <<'END_OF_FILE'
  530. X#! /bin/sh
  531. X# rmgroup group - snuff group
  532. XF=/tmp/nc$$
  533. Xadmin=usenet
  534. X
  535. Xcat >$F
  536. XSENDER="`grep '^Sender:' $F | sed 's/^[^:]*: *//'`"
  537. Xcase "$SENDER" in
  538. X"")
  539. X    SENDER="`grep '^From:' $F | sed 's/^[^:]*: *//'`"
  540. X    ;;
  541. Xesac
  542. X
  543. X# tell the local usenet administrator to do it by hand
  544. Xecho "rmgroup $1 says $SENDER" | mail $admin
  545. X
  546. Xrm -f $F*
  547. END_OF_FILE
  548. if test 321 -ne `wc -c <'lib.proto/control/rmgroup.man'`; then
  549.     echo shar: \"'lib.proto/control/rmgroup.man'\" unpacked with wrong size!
  550. fi
  551. # end of 'lib.proto/control/rmgroup.man'
  552. fi
  553. if test -f 'lib.proto/control/sendme' -a "${1}" != "-c" ; then 
  554.   echo shar: Will not clobber existing file \"'lib.proto/control/sendme'\"
  555. else
  556. echo shar: Extracting \"'lib.proto/control/sendme'\" \(348 characters\)
  557. sed "s/^X//" >'lib.proto/control/sendme' <<'END_OF_FILE'
  558. X#! /bin/sh
  559. X# ihave - stub for unimplemented I-have/send-me protocol
  560. XNEWSCTL=${NEWSCTL-/usr/lib/news}; export NEWSCTL
  561. XNEWSBIN=${NEWSBIN-/usr/lib/newsbin}; export NEWSBIN
  562. XNEWSARTS=${NEWSARTS-/usr/spool/news}; export NEWSARTS
  563. XPATH=$NEWSCTL:$NEWSBIN:/bin:/usr/bin; export PATH
  564. X
  565. XSENDER="`newsreply`"
  566. Xecho I-have/send-me not implemented | mail "$SENDER"
  567. END_OF_FILE
  568. if test 348 -ne `wc -c <'lib.proto/control/sendme'`; then
  569.     echo shar: \"'lib.proto/control/sendme'\" unpacked with wrong size!
  570. fi
  571. # end of 'lib.proto/control/sendme'
  572. fi
  573. if test -f 'lib.proto/ctl' -a "${1}" != "-c" ; then 
  574.   echo shar: Will not clobber existing file \"'lib.proto/ctl'\"
  575. else
  576. echo shar: Extracting \"'lib.proto/ctl'\" \(0 characters\)
  577. sed "s/^X//" >'lib.proto/ctl' <<'END_OF_FILE'
  578. END_OF_FILE
  579. if test 0 -ne `wc -c <'lib.proto/ctl'`; then
  580.     echo shar: \"'lib.proto/ctl'\" unpacked with wrong size!
  581. fi
  582. # end of 'lib.proto/ctl'
  583. fi
  584. if test -f 'lib.proto/errlog' -a "${1}" != "-c" ; then 
  585.   echo shar: Will not clobber existing file \"'lib.proto/errlog'\"
  586. else
  587. echo shar: Extracting \"'lib.proto/errlog'\" \(0 characters\)
  588. sed "s/^X//" >'lib.proto/errlog' <<'END_OF_FILE'
  589. END_OF_FILE
  590. if test 0 -ne `wc -c <'lib.proto/errlog'`; then
  591.     echo shar: \"'lib.proto/errlog'\" unpacked with wrong size!
  592. fi
  593. # end of 'lib.proto/errlog'
  594. fi
  595. if test -f 'lib.proto/history' -a "${1}" != "-c" ; then 
  596.   echo shar: Will not clobber existing file \"'lib.proto/history'\"
  597. else
  598. echo shar: Extracting \"'lib.proto/history'\" \(0 characters\)
  599. sed "s/^X//" >'lib.proto/history' <<'END_OF_FILE'
  600. END_OF_FILE
  601. if test 0 -ne `wc -c <'lib.proto/history'`; then
  602.     echo shar: \"'lib.proto/history'\" unpacked with wrong size!
  603. fi
  604. # end of 'lib.proto/history'
  605. fi
  606. if test -f 'lib.proto/history.dir' -a "${1}" != "-c" ; then 
  607.   echo shar: Will not clobber existing file \"'lib.proto/history.dir'\"
  608. else
  609. echo shar: Extracting \"'lib.proto/history.dir'\" \(0 characters\)
  610. sed "s/^X//" >'lib.proto/history.dir' <<'END_OF_FILE'
  611. END_OF_FILE
  612. if test 0 -ne `wc -c <'lib.proto/history.dir'`; then
  613.     echo shar: \"'lib.proto/history.dir'\" unpacked with wrong size!
  614. fi
  615. # end of 'lib.proto/history.dir'
  616. fi
  617. if test -f 'lib.proto/history.pag' -a "${1}" != "-c" ; then 
  618.   echo shar: Will not clobber existing file \"'lib.proto/history.pag'\"
  619. else
  620. echo shar: Extracting \"'lib.proto/history.pag'\" \(0 characters\)
  621. sed "s/^X//" >'lib.proto/history.pag' <<'END_OF_FILE'
  622. END_OF_FILE
  623. if test 0 -ne `wc -c <'lib.proto/history.pag'`; then
  624.     echo shar: \"'lib.proto/history.pag'\" unpacked with wrong size!
  625. fi
  626. # end of 'lib.proto/history.pag'
  627. fi
  628. if test -f 'lib.proto/log' -a "${1}" != "-c" ; then 
  629.   echo shar: Will not clobber existing file \"'lib.proto/log'\"
  630. else
  631. echo shar: Extracting \"'lib.proto/log'\" \(0 characters\)
  632. sed "s/^X//" >'lib.proto/log' <<'END_OF_FILE'
  633. END_OF_FILE
  634. if test 0 -ne `wc -c <'lib.proto/log'`; then
  635.     echo shar: \"'lib.proto/log'\" unpacked with wrong size!
  636. fi
  637. # end of 'lib.proto/log'
  638. fi
  639. if test -f 'lib.proto/mailpaths' -a "${1}" != "-c" ; then 
  640.   echo shar: Will not clobber existing file \"'lib.proto/mailpaths'\"
  641. else
  642. echo shar: Extracting \"'lib.proto/mailpaths'\" \(30 characters\)
  643. sed "s/^X//" >'lib.proto/mailpaths' <<'END_OF_FILE'
  644. Xutstat    utstat!%s
  645. Xall    uunet!%s
  646. END_OF_FILE
  647. if test 30 -ne `wc -c <'lib.proto/mailpaths'`; then
  648.     echo shar: \"'lib.proto/mailpaths'\" unpacked with wrong size!
  649. fi
  650. # end of 'lib.proto/mailpaths'
  651. fi
  652. if test -f 'lib.proto/mkpdir' -a "${1}" != "-c" ; then 
  653.   echo shar: Will not clobber existing file \"'lib.proto/mkpdir'\"
  654. else
  655. echo shar: Extracting \"'lib.proto/mkpdir'\" \(343 characters\)
  656. sed "s/^X//" >'lib.proto/mkpdir' <<'END_OF_FILE'
  657. X#! /bin/sh
  658. X# mkpdir dir ... - make directory and parents
  659. XPATH=/bin:/usr/bin:/usr/ucb:/usr/lib/news; export PATH    # must include this file's dir.
  660. Xstatus=0
  661. X
  662. Xfor dir
  663. Xdo
  664. X    mkdir "$dir" 2>/dev/null
  665. X    if test ! -d "$dir"; then
  666. X        mkpdir "`echo $dir | sed 's;/[^/]*$;;'`"
  667. X        mkdir "$dir"
  668. X        if test ! -d "$dir"; then
  669. X            status=1
  670. X        fi
  671. X    fi
  672. Xdone
  673. Xexit $status
  674. END_OF_FILE
  675. if test 343 -ne `wc -c <'lib.proto/mkpdir'`; then
  676.     echo shar: \"'lib.proto/mkpdir'\" unpacked with wrong size!
  677. fi
  678. # end of 'lib.proto/mkpdir'
  679. fi
  680. if test -f 'lib.proto/newsboot' -a "${1}" != "-c" ; then 
  681.   echo shar: Will not clobber existing file \"'lib.proto/newsboot'\"
  682. else
  683. echo shar: Extracting \"'lib.proto/newsboot'\" \(93 characters\)
  684. sed "s/^X//" >'lib.proto/newsboot' <<'END_OF_FILE'
  685. X#! /bin/sh
  686. Xcd /usr/lib/news
  687. Xrm -f LOCK* history.n* incoming/ns.* incoming/RLOCK incoming/L.*
  688. END_OF_FILE
  689. if test 93 -ne `wc -c <'lib.proto/newsboot'`; then
  690.     echo shar: \"'lib.proto/newsboot'\" unpacked with wrong size!
  691. fi
  692. # end of 'lib.proto/newsboot'
  693. fi
  694. if test -f 'lib.proto/newsreply' -a "${1}" != "-c" ; then 
  695.   echo shar: Will not clobber existing file \"'lib.proto/newsreply'\"
  696. else
  697. echo shar: Extracting \"'lib.proto/newsreply'\" \(344 characters\)
  698. sed "s/^X//" >'lib.proto/newsreply' <<'END_OF_FILE'
  699. X#! /bin/sh
  700. X# newsreply - print return address from news article on stdin
  701. X# This version assumes a domain mailer (user@host.domain works)
  702. XF=/tmp/nc$$
  703. X
  704. Xcat >$F
  705. X
  706. XSENDER="`grep '^Reply-To:' $F | sed 's/^[^:]*://
  707. Xs/ (.*)//
  708. X1q' `"
  709. Xcase "$SENDER" in
  710. X"")
  711. X    SENDER="`grep '^From:' $F | sed 's/^[^:]*://
  712. Xs/ (.*)//
  713. X1q' `"
  714. X    ;;
  715. Xesac
  716. X
  717. Xecho "$SENDER"
  718. Xrm -f $F
  719. END_OF_FILE
  720. if test 344 -ne `wc -c <'lib.proto/newsreply'`; then
  721.     echo shar: \"'lib.proto/newsreply'\" unpacked with wrong size!
  722. fi
  723. # end of 'lib.proto/newsreply'
  724. fi
  725. if test -f 'lib.proto/newsreply.from' -a "${1}" != "-c" ; then 
  726.   echo shar: Will not clobber existing file \"'lib.proto/newsreply.from'\"
  727. else
  728. echo shar: Extracting \"'lib.proto/newsreply.from'\" \(344 characters\)
  729. sed "s/^X//" >'lib.proto/newsreply.from' <<'END_OF_FILE'
  730. X#! /bin/sh
  731. X# newsreply - print return address from news article on stdin
  732. X# This version assumes a domain mailer (user@host.domain works)
  733. XF=/tmp/nc$$
  734. X
  735. Xcat >$F
  736. X
  737. XSENDER="`grep '^Reply-To:' $F | sed 's/^[^:]*://
  738. Xs/ (.*)//
  739. X1q' `"
  740. Xcase "$SENDER" in
  741. X"")
  742. X    SENDER="`grep '^From:' $F | sed 's/^[^:]*://
  743. Xs/ (.*)//
  744. X1q' `"
  745. X    ;;
  746. Xesac
  747. X
  748. Xecho "$SENDER"
  749. Xrm -f $F
  750. END_OF_FILE
  751. if test 344 -ne `wc -c <'lib.proto/newsreply.from'`; then
  752.     echo shar: \"'lib.proto/newsreply.from'\" unpacked with wrong size!
  753. fi
  754. # end of 'lib.proto/newsreply.from'
  755. fi
  756. if test -f 'lib.proto/newsreply.path' -a "${1}" != "-c" ; then 
  757.   echo shar: Will not clobber existing file \"'lib.proto/newsreply.path'\"
  758. else
  759. echo shar: Extracting \"'lib.proto/newsreply.path'\" \(220 characters\)
  760. sed "s/^X//" >'lib.proto/newsreply.path' <<'END_OF_FILE'
  761. X#! /bin/sh
  762. X# newsreply - print return address from news article on stdin
  763. X# This version is for those without domain mailers
  764. XF=/tmp/nc$$
  765. X
  766. Xcat >$F
  767. X
  768. XSENDER="`grep '^Path:' $F | sed 's/^[^:]*://' `"
  769. X
  770. Xecho "$SENDER"
  771. Xrm -f $F
  772. END_OF_FILE
  773. if test 220 -ne `wc -c <'lib.proto/newsreply.path'`; then
  774.     echo shar: \"'lib.proto/newsreply.path'\" unpacked with wrong size!
  775. fi
  776. # end of 'lib.proto/newsreply.path'
  777. fi
  778. if test -f 'lib.proto/organisation' -a "${1}" != "-c" ; then 
  779.   echo shar: Will not clobber existing file \"'lib.proto/organisation'\"
  780. else
  781. echo shar: Extracting \"'lib.proto/organisation'\" \(26 characters\)
  782. sed "s/^X//" >'lib.proto/organisation' <<'END_OF_FILE'
  783. XStatistics, U. of Toronto
  784. END_OF_FILE
  785. if test 26 -ne `wc -c <'lib.proto/organisation'`; then
  786.     echo shar: \"'lib.proto/organisation'\" unpacked with wrong size!
  787. fi
  788. # end of 'lib.proto/organisation'
  789. fi
  790. if test -f 'lib.proto/universes' -a "${1}" != "-c" ; then 
  791.   echo shar: Will not clobber existing file \"'lib.proto/universes'\"
  792. else
  793. echo shar: Extracting \"'lib.proto/universes'\" \(127 characters\)
  794. sed "s/^X//" >'lib.proto/universes' <<'END_OF_FILE'
  795. X# universes of control
  796. Xcabal    comp,news,sci,misc,talk,rec,soc
  797. Xalt    alt
  798. Xbit    list
  799. Xlocal    to,junk,control,can,ont,tor,ut
  800. Xmotd    utstat
  801. END_OF_FILE
  802. if test 127 -ne `wc -c <'lib.proto/universes'`; then
  803.     echo shar: \"'lib.proto/universes'\" unpacked with wrong size!
  804. fi
  805. # end of 'lib.proto/universes'
  806. fi
  807. if test -f 'lib.proto/whoami' -a "${1}" != "-c" ; then 
  808.   echo shar: Will not clobber existing file \"'lib.proto/whoami'\"
  809. else
  810. echo shar: Extracting \"'lib.proto/whoami'\" \(7 characters\)
  811. sed "s/^X//" >'lib.proto/whoami' <<'END_OF_FILE'
  812. Xutstat
  813. END_OF_FILE
  814. if test 7 -ne `wc -c <'lib.proto/whoami'`; then
  815.     echo shar: \"'lib.proto/whoami'\" unpacked with wrong size!
  816. fi
  817. # end of 'lib.proto/whoami'
  818. fi
  819. if test -f 'libc/README' -a "${1}" != "-c" ; then 
  820.   echo shar: Will not clobber existing file \"'libc/README'\"
  821. else
  822. echo shar: Extracting \"'libc/README'\" \(304 characters\)
  823. sed "s/^X//" >'libc/README' <<'END_OF_FILE'
  824. XThese should, ideally, be inserted into your C library if they aren't
  825. Xthere already.  If they can't be put into your C library nor -llocal,
  826. Xjust put the ones not in your C library into libc.a in this directory.
  827. X
  828. XThey were all written by either Henry Spencer, Geoff Collyer or Brian
  829. XKernighan & Rob Pike.
  830. END_OF_FILE
  831. if test 304 -ne `wc -c <'libc/README'`; then
  832.     echo shar: \"'libc/README'\" unpacked with wrong size!
  833. fi
  834. # end of 'libc/README'
  835. fi
  836. if test -f 'libc/closeall.c' -a "${1}" != "-c" ; then 
  837.   echo shar: Will not clobber existing file \"'libc/closeall.c'\"
  838. else
  839. echo shar: Extracting \"'libc/closeall.c'\" \(136 characters\)
  840. sed "s/^X//" >'libc/closeall.c' <<'END_OF_FILE'
  841. X#include <sys/param.h>
  842. X
  843. Xcloseall(leavestd)
  844. Xint leavestd;
  845. X{
  846. X    register int i;
  847. X
  848. X    for (i = (leavestd? 3: 0); i < NOFILE; i++)
  849. X        close(i);
  850. X}
  851. END_OF_FILE
  852. if test 136 -ne `wc -c <'libc/closeall.c'`; then
  853.     echo shar: \"'libc/closeall.c'\" unpacked with wrong size!
  854. fi
  855. # end of 'libc/closeall.c'
  856. fi
  857. if test -f 'libc/emalloc.c' -a "${1}" != "-c" ; then 
  858.   echo shar: Will not clobber existing file \"'libc/emalloc.c'\"
  859. else
  860. echo shar: Extracting \"'libc/emalloc.c'\" \(360 characters\)
  861. sed "s/^X//" >'libc/emalloc.c' <<'END_OF_FILE'
  862. X/*
  863. X * emalloc - malloc with error() called when out of space
  864. X */
  865. X
  866. X#define    NULL    0
  867. X
  868. Xchar *
  869. Xemalloc(amount)
  870. Xunsigned amount;
  871. X{
  872. X    register char *it;
  873. X    char camount[25];        /* Enough to sprintf an unsigned. */
  874. X    extern char *malloc();
  875. X
  876. X    it = malloc(amount);
  877. X    if (it == NULL) {
  878. X        sprintf(camount, "%u", amount);
  879. X        error("malloc(%s) failed", camount);
  880. X    }    
  881. X
  882. X    return(it);
  883. X}
  884. END_OF_FILE
  885. if test 360 -ne `wc -c <'libc/emalloc.c'`; then
  886.     echo shar: \"'libc/emalloc.c'\" unpacked with wrong size!
  887. fi
  888. # end of 'libc/emalloc.c'
  889. fi
  890. if test -f 'libc/error.c' -a "${1}" != "-c" ; then 
  891.   echo shar: Will not clobber existing file \"'libc/error.c'\"
  892. else
  893. echo shar: Extracting \"'libc/error.c'\" \(148 characters\)
  894. sed "s/^X//" >'libc/error.c' <<'END_OF_FILE'
  895. X/*
  896. X * error - print best error message possible and exit
  897. X */
  898. X
  899. X#include <stdio.h>
  900. X
  901. Xerror(s1, s2)
  902. Xchar *s1;
  903. Xchar *s2;
  904. X{
  905. X    warning(s1, s2);
  906. X    exit(1);
  907. X}
  908. END_OF_FILE
  909. if test 148 -ne `wc -c <'libc/error.c'`; then
  910.     echo shar: \"'libc/error.c'\" unpacked with wrong size!
  911. fi
  912. # end of 'libc/error.c'
  913. fi
  914. if test -f 'libc/memcpy.fast/src/obvious.c' -a "${1}" != "-c" ; then 
  915.   echo shar: Will not clobber existing file \"'libc/memcpy.fast/src/obvious.c'\"
  916. else
  917. echo shar: Extracting \"'libc/memcpy.fast/src/obvious.c'\" \(146 characters\)
  918. sed "s/^X//" >'libc/memcpy.fast/src/obvious.c' <<'END_OF_FILE'
  919. Xmemcpy(to, from, count)        /* no alignment assumptions */
  920. Xregister char *from, *to;
  921. Xregister int count;
  922. X{
  923. X    while (count-- > 0)
  924. X        *to++ = *from++;
  925. X}
  926. END_OF_FILE
  927. if test 146 -ne `wc -c <'libc/memcpy.fast/src/obvious.c'`; then
  928.     echo shar: \"'libc/memcpy.fast/src/obvious.c'\" unpacked with wrong size!
  929. fi
  930. # end of 'libc/memcpy.fast/src/obvious.c'
  931. fi
  932. if test -f 'libc/standard.c' -a "${1}" != "-c" ; then 
  933.   echo shar: Will not clobber existing file \"'libc/standard.c'\"
  934. else
  935. echo shar: Extracting \"'libc/standard.c'\" \(223 characters\)
  936. sed "s/^X//" >'libc/standard.c' <<'END_OF_FILE'
  937. X#define    NULL    0
  938. Xextern char    **environ;
  939. Xstatic char    *stdenv[] = {
  940. X    "PATH=/bin:/usr/bin",
  941. X    "IFS= \t\n",
  942. X    NULL
  943. X};
  944. X
  945. Xstandard()
  946. X{
  947. X    environ = stdenv;
  948. X    closeall(1);
  949. X}
  950. X
  951. Xsafe()
  952. X{
  953. X    setgid(getgid());
  954. X    setuid(getuid());
  955. X    closeall(1);
  956. X}
  957. END_OF_FILE
  958. if test 223 -ne `wc -c <'libc/standard.c'`; then
  959.     echo shar: \"'libc/standard.c'\" unpacked with wrong size!
  960. fi
  961. # end of 'libc/standard.c'
  962. fi
  963. if test -f 'libc/stdio.fast/LEGAL.STDIO' -a "${1}" != "-c" ; then 
  964.   echo shar: Will not clobber existing file \"'libc/stdio.fast/LEGAL.STDIO'\"
  965. else
  966. echo shar: Extracting \"'libc/stdio.fast/LEGAL.STDIO'\" \(163 characters\)
  967. sed "s/^X//" >'libc/stdio.fast/LEGAL.STDIO' <<'END_OF_FILE'
  968. XPage 165 of The C Programming Language describes some of the workings
  969. Xof the UNIX stdio implementation. In particular, it describes the
  970. Xfunction of _ptr and _cnt.
  971. END_OF_FILE
  972. if test 163 -ne `wc -c <'libc/stdio.fast/LEGAL.STDIO'`; then
  973.     echo shar: \"'libc/stdio.fast/LEGAL.STDIO'\" unpacked with wrong size!
  974. fi
  975. # end of 'libc/stdio.fast/LEGAL.STDIO'
  976. fi
  977. if test -f 'libc/stdio.fast/README' -a "${1}" != "-c" ; then 
  978.   echo shar: Will not clobber existing file \"'libc/stdio.fast/README'\"
  979. else
  980. echo shar: Extracting \"'libc/stdio.fast/README'\" \(234 characters\)
  981. sed "s/^X//" >'libc/stdio.fast/README' <<'END_OF_FILE'
  982. XThis directory does not form a library; fgets.o, fputs.o and rdwr.o
  983. Xconstitute re-written stdio guts, thought to be compatible with the
  984. Xusual UNIX stdio implementation.
  985. X
  986. Xmemcpy.o need only be generated if your C library lacks memcpy.
  987. END_OF_FILE
  988. if test 234 -ne `wc -c <'libc/stdio.fast/README'`; then
  989.     echo shar: \"'libc/stdio.fast/README'\" unpacked with wrong size!
  990. fi
  991. # end of 'libc/stdio.fast/README'
  992. fi
  993. if test -f 'libc/stdio.fast/fputs.c' -a "${1}" != "-c" ; then 
  994.   echo shar: Will not clobber existing file \"'libc/stdio.fast/fputs.c'\"
  995. else
  996. echo shar: Extracting \"'libc/stdio.fast/fputs.c'\" \(161 characters\)
  997. sed "s/^X//" >'libc/stdio.fast/fputs.c' <<'END_OF_FILE'
  998. X#include <stdio.h>
  999. X
  1000. Xfputs(s, fp)
  1001. Xregister char *s;
  1002. Xregister FILE *fp;
  1003. X{
  1004. X    unsigned len = strlen(s);
  1005. X
  1006. X    if (fwrite(s, 1, len, fp) < len)
  1007. X        return EOF;
  1008. X    return 0;
  1009. X}
  1010. END_OF_FILE
  1011. if test 161 -ne `wc -c <'libc/stdio.fast/fputs.c'`; then
  1012.     echo shar: \"'libc/stdio.fast/fputs.c'\" unpacked with wrong size!
  1013. fi
  1014. # end of 'libc/stdio.fast/fputs.c'
  1015. fi
  1016. if test -f 'libc/stdio.fast/makefile' -a "${1}" != "-c" ; then 
  1017.   echo shar: Will not clobber existing file \"'libc/stdio.fast/makefile'\"
  1018. else
  1019. echo shar: Extracting \"'libc/stdio.fast/makefile'\" \(285 characters\)
  1020. sed "s/^X//" >'libc/stdio.fast/makefile' <<'END_OF_FILE'
  1021. X# makefile for dmr.faster
  1022. X
  1023. XSRC=fgets.c fputs.c rdwr.c # memcpy.c
  1024. XDEFINES = -DBSD # -pg # -Dvoid=int
  1025. XCFLAGS = $(DEFINES) -O
  1026. XLINTFLAGS = $(DEFINES) -ha
  1027. X
  1028. Xdmr.faster: $(SRC)
  1029. X    $(CC) $(CFLAGS) -c $(SRC)
  1030. X    touch $@
  1031. X
  1032. Xlint:
  1033. X    lint $(LINTFLAGS) -u $(SRC)
  1034. Xlintport:
  1035. X    lint -p $(LINTFLAGS) -u $(SRC)
  1036. END_OF_FILE
  1037. if test 285 -ne `wc -c <'libc/stdio.fast/makefile'`; then
  1038.     echo shar: \"'libc/stdio.fast/makefile'\" unpacked with wrong size!
  1039. fi
  1040. # end of 'libc/stdio.fast/makefile'
  1041. fi
  1042. if test -f 'libc/stdio.fast/memcpy.c' -a "${1}" != "-c" ; then 
  1043.   echo shar: Will not clobber existing file \"'libc/stdio.fast/memcpy.c'\"
  1044. else
  1045. echo shar: Extracting \"'libc/stdio.fast/memcpy.c'\" \(215 characters\)
  1046. sed "s/^X//" >'libc/stdio.fast/memcpy.c' <<'END_OF_FILE'
  1047. X/*
  1048. X * memcpy(3) stub in case none in C library
  1049. X */
  1050. X
  1051. Xmemcpy(to, from, len)
  1052. Xregister char *from, *to;
  1053. Xregister unsigned len;
  1054. X{
  1055. X    /* TODO: copy a word or long at a time */
  1056. X    for (++len; --len > 0; )
  1057. X        *to++ = *from++;
  1058. X}
  1059. END_OF_FILE
  1060. if test 215 -ne `wc -c <'libc/stdio.fast/memcpy.c'`; then
  1061.     echo shar: \"'libc/stdio.fast/memcpy.c'\" unpacked with wrong size!
  1062. fi
  1063. # end of 'libc/stdio.fast/memcpy.c'
  1064. fi
  1065. if test -f 'libc/stdio.fast/memcpy.h' -a "${1}" != "-c" ; then 
  1066.   echo shar: Will not clobber existing file \"'libc/stdio.fast/memcpy.h'\"
  1067. else
  1068. echo shar: Extracting \"'libc/stdio.fast/memcpy.h'\" \(65 characters\)
  1069. sed "s/^X//" >'libc/stdio.fast/memcpy.h' <<'END_OF_FILE'
  1070. X#ifdef BSD
  1071. X#define memcpy(to, from, n) bcopy(from, to, n)
  1072. X#endif
  1073. END_OF_FILE
  1074. if test 65 -ne `wc -c <'libc/stdio.fast/memcpy.h'`; then
  1075.     echo shar: \"'libc/stdio.fast/memcpy.h'\" unpacked with wrong size!
  1076. fi
  1077. # end of 'libc/stdio.fast/memcpy.h'
  1078. fi
  1079. if test -f 'libc/strings/bcmp.c' -a "${1}" != "-c" ; then 
  1080.   echo shar: Will not clobber existing file \"'libc/strings/bcmp.c'\"
  1081. else
  1082. echo shar: Extracting \"'libc/strings/bcmp.c'\" \(243 characters\)
  1083. sed "s/^X//" >'libc/strings/bcmp.c' <<'END_OF_FILE'
  1084. X/*
  1085. X - bcmp - Berklix equivalent of memcmp
  1086. X */
  1087. X
  1088. Xint                /* == 0 or != 0 for equality and inequality */
  1089. Xbcmp(s1, s2, length)
  1090. XCONST char *s1;
  1091. XCONST char *s2;    
  1092. Xint length;
  1093. X{
  1094. X    return(memcmp((CONST VOIDSTAR)s1, (CONST VOIDSTAR)s2, (SIZET)length));
  1095. X}
  1096. END_OF_FILE
  1097. if test 243 -ne `wc -c <'libc/strings/bcmp.c'`; then
  1098.     echo shar: \"'libc/strings/bcmp.c'\" unpacked with wrong size!
  1099. fi
  1100. # end of 'libc/strings/bcmp.c'
  1101. fi
  1102. if test -f 'libc/strings/bcopy.c' -a "${1}" != "-c" ; then 
  1103.   echo shar: Will not clobber existing file \"'libc/strings/bcopy.c'\"
  1104. else
  1105. echo shar: Extracting \"'libc/strings/bcopy.c'\" \(211 characters\)
  1106. sed "s/^X//" >'libc/strings/bcopy.c' <<'END_OF_FILE'
  1107. X/*
  1108. X - bcopy - Berklix equivalent of memcpy
  1109. X */
  1110. X
  1111. Xbcopy(src, dst, length)
  1112. XCONST char *src;
  1113. Xchar *dst;
  1114. Xint length;
  1115. X{
  1116. X    extern VOIDSTAR memcpy();
  1117. X
  1118. X    (void) memcpy((VOIDSTAR)dst, (CONST VOIDSTAR)src, (SIZET)length);
  1119. X}
  1120. END_OF_FILE
  1121. if test 211 -ne `wc -c <'libc/strings/bcopy.c'`; then
  1122.     echo shar: \"'libc/strings/bcopy.c'\" unpacked with wrong size!
  1123. fi
  1124. # end of 'libc/strings/bcopy.c'
  1125. fi
  1126. if test -f 'libc/strings/bzero.c' -a "${1}" != "-c" ; then 
  1127.   echo shar: Will not clobber existing file \"'libc/strings/bzero.c'\"
  1128. else
  1129. echo shar: Extracting \"'libc/strings/bzero.c'\" \(167 characters\)
  1130. sed "s/^X//" >'libc/strings/bzero.c' <<'END_OF_FILE'
  1131. X/*
  1132. X - bzero - Berklix subset of memset
  1133. X */
  1134. X
  1135. Xbzero(dst, length)
  1136. Xchar *dst;
  1137. Xint length;
  1138. X{
  1139. X    extern VOIDSTAR memset();
  1140. X
  1141. X    (void) memset((VOIDSTAR)dst, 0, (SIZET)length);
  1142. X}
  1143. END_OF_FILE
  1144. if test 167 -ne `wc -c <'libc/strings/bzero.c'`; then
  1145.     echo shar: \"'libc/strings/bzero.c'\" unpacked with wrong size!
  1146. fi
  1147. # end of 'libc/strings/bzero.c'
  1148. fi
  1149. if test -f 'libc/strings/index.c' -a "${1}" != "-c" ; then 
  1150.   echo shar: Will not clobber existing file \"'libc/strings/index.c'\"
  1151. else
  1152. echo shar: Extracting \"'libc/strings/index.c'\" \(242 characters\)
  1153. sed "s/^X//" >'libc/strings/index.c' <<'END_OF_FILE'
  1154. X/*
  1155. X * index - find first occurrence of a character in a string
  1156. X */
  1157. X
  1158. X#define    NULL    0
  1159. X
  1160. Xchar *                /* found char, or NULL if none */
  1161. Xindex(s, charwanted)
  1162. XCONST char *s;
  1163. Xchar charwanted;
  1164. X{
  1165. X    extern char *strchr();
  1166. X
  1167. X    return(strchr(s, charwanted));
  1168. X}
  1169. END_OF_FILE
  1170. if test 242 -ne `wc -c <'libc/strings/index.c'`; then
  1171.     echo shar: \"'libc/strings/index.c'\" unpacked with wrong size!
  1172. fi
  1173. # end of 'libc/strings/index.c'
  1174. fi
  1175. if test -f 'libc/strings/rindex.c' -a "${1}" != "-c" ; then 
  1176.   echo shar: Will not clobber existing file \"'libc/strings/rindex.c'\"
  1177. else
  1178. echo shar: Extracting \"'libc/strings/rindex.c'\" \(245 characters\)
  1179. sed "s/^X//" >'libc/strings/rindex.c' <<'END_OF_FILE'
  1180. X/*
  1181. X * rindex - find last occurrence of a character in a string
  1182. X */
  1183. X
  1184. X#define    NULL    0
  1185. X
  1186. Xchar *                /* found char, or NULL if none */
  1187. Xrindex(s, charwanted)
  1188. XCONST char *s;
  1189. Xchar charwanted;
  1190. X{
  1191. X    extern char *strrchr();
  1192. X
  1193. X    return(strrchr(s, charwanted));
  1194. X}
  1195. END_OF_FILE
  1196. if test 245 -ne `wc -c <'libc/strings/rindex.c'`; then
  1197.     echo shar: \"'libc/strings/rindex.c'\" unpacked with wrong size!
  1198. fi
  1199. # end of 'libc/strings/rindex.c'
  1200. fi
  1201. if test -f 'libc/strings/strcat.c' -a "${1}" != "-c" ; then 
  1202.   echo shar: Will not clobber existing file \"'libc/strings/strcat.c'\"
  1203. else
  1204. echo shar: Extracting \"'libc/strings/strcat.c'\" \(301 characters\)
  1205. sed "s/^X//" >'libc/strings/strcat.c' <<'END_OF_FILE'
  1206. X/*
  1207. X * strcat - append string src to dst
  1208. X */
  1209. Xchar *                /* dst */
  1210. Xstrcat(dst, src)
  1211. Xchar *dst;
  1212. XCONST char *src;
  1213. X{
  1214. X    register char *dscan;
  1215. X    register CONST char *sscan;
  1216. X
  1217. X    for (dscan = dst; *dscan != '\0'; dscan++)
  1218. X        continue;
  1219. X    sscan = src;
  1220. X    while ((*dscan++ = *sscan++) != '\0')
  1221. X        continue;
  1222. X    return(dst);
  1223. X}
  1224. END_OF_FILE
  1225. if test 301 -ne `wc -c <'libc/strings/strcat.c'`; then
  1226.     echo shar: \"'libc/strings/strcat.c'\" unpacked with wrong size!
  1227. fi
  1228. # end of 'libc/strings/strcat.c'
  1229. fi
  1230. if test -f 'libc/strings/strcpy.c' -a "${1}" != "-c" ; then 
  1231.   echo shar: Will not clobber existing file \"'libc/strings/strcpy.c'\"
  1232. else
  1233. echo shar: Extracting \"'libc/strings/strcpy.c'\" \(257 characters\)
  1234. sed "s/^X//" >'libc/strings/strcpy.c' <<'END_OF_FILE'
  1235. X/*
  1236. X * strcpy - copy string src to dst
  1237. X */
  1238. Xchar *                /* dst */
  1239. Xstrcpy(dst, src)
  1240. Xchar *dst;
  1241. XCONST char *src;
  1242. X{
  1243. X    register char *dscan;
  1244. X    register CONST char *sscan;
  1245. X
  1246. X    dscan = dst;
  1247. X    sscan = src;
  1248. X    while ((*dscan++ = *sscan++) != '\0')
  1249. X        continue;
  1250. X    return(dst);
  1251. X}
  1252. END_OF_FILE
  1253. if test 257 -ne `wc -c <'libc/strings/strcpy.c'`; then
  1254.     echo shar: \"'libc/strings/strcpy.c'\" unpacked with wrong size!
  1255. fi
  1256. # end of 'libc/strings/strcpy.c'
  1257. fi
  1258. if test -f 'libc/strings/strerror.c' -a "${1}" != "-c" ; then 
  1259.   echo shar: Will not clobber existing file \"'libc/strings/strerror.c'\"
  1260. else
  1261. echo shar: Extracting \"'libc/strings/strerror.c'\" \(317 characters\)
  1262. sed "s/^X//" >'libc/strings/strerror.c' <<'END_OF_FILE'
  1263. X/*
  1264. X * strerror - map error number to descriptive string
  1265. X *
  1266. X * This version is obviously somewhat Unix-specific.
  1267. X */
  1268. Xchar *
  1269. Xstrerror(errnum)
  1270. Xint errnum;
  1271. X{
  1272. X    extern int errno, sys_nerr;
  1273. X    extern char *sys_errlist[];
  1274. X
  1275. X    if (errnum > 0 && errnum < sys_nerr)
  1276. X        return(sys_errlist[errnum]);
  1277. X    else
  1278. X        return("unknown error");
  1279. X}
  1280. END_OF_FILE
  1281. if test 317 -ne `wc -c <'libc/strings/strerror.c'`; then
  1282.     echo shar: \"'libc/strings/strerror.c'\" unpacked with wrong size!
  1283. fi
  1284. # end of 'libc/strings/strerror.c'
  1285. fi
  1286. if test -f 'libc/strings/strlen.c' -a "${1}" != "-c" ; then 
  1287.   echo shar: Will not clobber existing file \"'libc/strings/strlen.c'\"
  1288. else
  1289. echo shar: Extracting \"'libc/strings/strlen.c'\" \(218 characters\)
  1290. sed "s/^X//" >'libc/strings/strlen.c' <<'END_OF_FILE'
  1291. X/*
  1292. X * strlen - length of string (not including NUL)
  1293. X */
  1294. XSIZET
  1295. Xstrlen(s)
  1296. XCONST char *s;
  1297. X{
  1298. X    register CONST char *scan;
  1299. X    register SIZET count;
  1300. X
  1301. X    count = 0;
  1302. X    scan = s;
  1303. X    while (*scan++ != '\0')
  1304. X        count++;
  1305. X    return(count);
  1306. X}
  1307. END_OF_FILE
  1308. if test 218 -ne `wc -c <'libc/strings/strlen.c'`; then
  1309.     echo shar: \"'libc/strings/strlen.c'\" unpacked with wrong size!
  1310. fi
  1311. # end of 'libc/strings/strlen.c'
  1312. fi
  1313. if test -f 'libcnews/complain.c' -a "${1}" != "-c" ; then 
  1314.   echo shar: Will not clobber existing file \"'libcnews/complain.c'\"
  1315. else
  1316. echo shar: Extracting \"'libcnews/complain.c'\" \(234 characters\)
  1317. sed "s/^X//" >'libcnews/complain.c' <<'END_OF_FILE'
  1318. X#include <stdio.h>
  1319. X
  1320. X/*
  1321. X - complain - lodge a complaint
  1322. X */
  1323. Xvoid
  1324. Xcomplain(s1, s2)
  1325. Xchar *s1;
  1326. Xchar *s2;
  1327. X{
  1328. X    extern char *progname;
  1329. X
  1330. X    (void) fprintf(stderr, "%s: ", progname);
  1331. X    (void) fprintf(stderr, s1, s2);
  1332. X    (void) putc('\n', stderr);
  1333. X}
  1334. END_OF_FILE
  1335. if test 234 -ne `wc -c <'libcnews/complain.c'`; then
  1336.     echo shar: \"'libcnews/complain.c'\" unpacked with wrong size!
  1337. fi
  1338. # end of 'libcnews/complain.c'
  1339. fi
  1340. if test -f 'libcnews/strlower.c' -a "${1}" != "-c" ; then 
  1341.   echo shar: Will not clobber existing file \"'libcnews/strlower.c'\"
  1342. else
  1343. echo shar: Extracting \"'libcnews/strlower.c'\" \(175 characters\)
  1344. sed "s/^X//" >'libcnews/strlower.c' <<'END_OF_FILE'
  1345. X/*
  1346. X * make a string all lower-case.
  1347. X */
  1348. X
  1349. X#include <ctype.h>
  1350. X
  1351. Xstrlower(s)
  1352. Xregister char *s;
  1353. X{
  1354. X    for (; *s != '\0'; ++s)
  1355. X        if (isascii(*s) && isupper(*s))
  1356. X            *s = tolower(*s);
  1357. X}
  1358. END_OF_FILE
  1359. if test 175 -ne `wc -c <'libcnews/strlower.c'`; then
  1360.     echo shar: \"'libcnews/strlower.c'\" unpacked with wrong size!
  1361. fi
  1362. # end of 'libcnews/strlower.c'
  1363. fi
  1364. if test -f 'mail/README' -a "${1}" != "-c" ; then 
  1365.   echo shar: Will not clobber existing file \"'mail/README'\"
  1366. else
  1367. echo shar: Extracting \"'mail/README'\" \(235 characters\)
  1368. sed "s/^X//" >'mail/README' <<'END_OF_FILE'
  1369. XThis pair of programs is used to exchange news articles
  1370. X(or batches of articles) by mail.
  1371. X
  1372. XThey are superior to the old B news compatible ones because they permit
  1373. Xtransmission of very long lines or binary files even over Bitnet links.
  1374. END_OF_FILE
  1375. if test 235 -ne `wc -c <'mail/README'`; then
  1376.     echo shar: \"'mail/README'\" unpacked with wrong size!
  1377. fi
  1378. # end of 'mail/README'
  1379. fi
  1380. if test -f 'mail/b.compat/README' -a "${1}" != "-c" ; then 
  1381.   echo shar: Will not clobber existing file \"'mail/b.compat/README'\"
  1382. else
  1383. echo shar: Extracting \"'mail/b.compat/README'\" \(90 characters\)
  1384. sed "s/^X//" >'mail/b.compat/README' <<'END_OF_FILE'
  1385. XThis pair of programs is used to exchange news articles
  1386. X(or batches of articles) by mail.
  1387. END_OF_FILE
  1388. if test 90 -ne `wc -c <'mail/b.compat/README'`; then
  1389.     echo shar: \"'mail/b.compat/README'\" unpacked with wrong size!
  1390. fi
  1391. # end of 'mail/b.compat/README'
  1392. fi
  1393. if test -f 'mail/b.compat/sendnews' -a "${1}" != "-c" ; then 
  1394.   echo shar: Will not clobber existing file \"'mail/b.compat/sendnews'\"
  1395. else
  1396. echo shar: Extracting \"'mail/b.compat/sendnews'\" \(161 characters\)
  1397. sed "s/^X//" >'mail/b.compat/sendnews' <<'END_OF_FILE'
  1398. X#! /bin/sh
  1399. X# sendnews destination - protect & mail article on stdin to destination
  1400. XPATH=/bin:/usr/bin:/usr/ucb; export PATH
  1401. X
  1402. X(echo ''; sed 's/^/N/') | mail "$1"
  1403. END_OF_FILE
  1404. if test 161 -ne `wc -c <'mail/b.compat/sendnews'`; then
  1405.     echo shar: \"'mail/b.compat/sendnews'\" unpacked with wrong size!
  1406. fi
  1407. # end of 'mail/b.compat/sendnews'
  1408. fi
  1409. if test -f 'mail/b.compat/uurec' -a "${1}" != "-c" ; then 
  1410.   echo shar: Will not clobber existing file \"'mail/b.compat/uurec'\"
  1411. else
  1412. echo shar: Extracting \"'mail/b.compat/uurec'\" \(154 characters\)
  1413. sed "s/^X//" >'mail/b.compat/uurec' <<'END_OF_FILE'
  1414. X#! /bin/sh
  1415. X# uurec - strip mail header & leading N's from stdin, feed to rnews
  1416. XPATH=/bin:/usr/bin:/usr/ucb; export PATH
  1417. X
  1418. Xsed -n '1,/^$/d
  1419. Xs/^N//p' | rnews
  1420. END_OF_FILE
  1421. if test 154 -ne `wc -c <'mail/b.compat/uurec'`; then
  1422.     echo shar: \"'mail/b.compat/uurec'\" unpacked with wrong size!
  1423. fi
  1424. # end of 'mail/b.compat/uurec'
  1425. fi
  1426. if test -f 'mail/coder/README' -a "${1}" != "-c" ; then 
  1427.   echo shar: Will not clobber existing file \"'mail/coder/README'\"
  1428. else
  1429. echo shar: Extracting \"'mail/coder/README'\" \(84 characters\)
  1430. sed "s/^X//" >'mail/coder/README' <<'END_OF_FILE'
  1431. XThese are rewritten versions of the standard 4BSD uu*code.c,
  1432. Xwhich run much faster.
  1433. END_OF_FILE
  1434. if test 84 -ne `wc -c <'mail/coder/README'`; then
  1435.     echo shar: \"'mail/coder/README'\" unpacked with wrong size!
  1436. fi
  1437. # end of 'mail/coder/README'
  1438. fi
  1439. if test -f 'mail/coder/dmr.faster' -a "${1}" != "-c" ; then 
  1440.   echo shar: Will not clobber existing file \"'mail/coder/dmr.faster'\"
  1441. else
  1442. echo shar: Extracting \"'mail/coder/dmr.faster'\" \(0 characters\)
  1443. sed "s/^X//" >'mail/coder/dmr.faster' <<'END_OF_FILE'
  1444. END_OF_FILE
  1445. if test 0 -ne `wc -c <'mail/coder/dmr.faster'`; then
  1446.     echo shar: \"'mail/coder/dmr.faster'\" unpacked with wrong size!
  1447. fi
  1448. # end of 'mail/coder/dmr.faster'
  1449. fi
  1450. if test -f 'mail/coder/makefile' -a "${1}" != "-c" ; then 
  1451.   echo shar: Will not clobber existing file \"'mail/coder/makefile'\"
  1452. else
  1453. echo shar: Extracting \"'mail/coder/makefile'\" \(262 characters\)
  1454. sed "s/^X//" >'mail/coder/makefile' <<'END_OF_FILE'
  1455. X# makefile for uuencode and uudecode
  1456. XCFLAGS=-O # -p
  1457. XLIBS= dmr.faster/*.o
  1458. X
  1459. Xall: uuencode uudecode
  1460. X
  1461. Xuuencode: uuencode.o
  1462. X    $(CC) $(CFLAGS) -o $@ uuencode.o $(LIBS)
  1463. X
  1464. Xuudecode: uudecode.o
  1465. X    $(CC) $(CFLAGS) -o $@ uudecode.o $(LIBS)
  1466. X
  1467. Xclean:
  1468. X    rm -f uuencode uudecode *.o
  1469. END_OF_FILE
  1470. if test 262 -ne `wc -c <'mail/coder/makefile'`; then
  1471.     echo shar: \"'mail/coder/makefile'\" unpacked with wrong size!
  1472. fi
  1473. # end of 'mail/coder/makefile'
  1474. fi
  1475. if test -f 'mail/recmnews' -a "${1}" != "-c" ; then 
  1476.   echo shar: Will not clobber existing file \"'mail/recmnews'\"
  1477. else
  1478. echo shar: Extracting \"'mail/recmnews'\" \(350 characters\)
  1479. sed "s/^X//" >'mail/recmnews' <<'END_OF_FILE'
  1480. X#! /bin/sh
  1481. X# recmnews - strip mail header & trailing N's from stdin, uudecode, feed to rnews
  1482. XPATH=/bin:/usr/bin:/usr/ucb:/usr/lib/news; export PATH
  1483. X
  1484. XDIR=/tmp/rmn$$
  1485. Xif mkdir $DIR; then
  1486. X    : far out
  1487. Xelse
  1488. X    exit 1
  1489. Xfi
  1490. Xcd $DIR
  1491. X
  1492. Xsed -n '1,/^$/d
  1493. Xs/N$//p' | uudecode        # TODO: worry about full disks during uudecode
  1494. Xif rnews <news; then
  1495. X    cd /tmp
  1496. X    rm -rf $DIR
  1497. Xfi
  1498. END_OF_FILE
  1499. if test 350 -ne `wc -c <'mail/recmnews'`; then
  1500.     echo shar: \"'mail/recmnews'\" unpacked with wrong size!
  1501. fi
  1502. # end of 'mail/recmnews'
  1503. fi
  1504. if test -f 'mail/sendmnews' -a "${1}" != "-c" ; then 
  1505.   echo shar: Will not clobber existing file \"'mail/sendmnews'\"
  1506. else
  1507. echo shar: Extracting \"'mail/sendmnews'\" \(195 characters\)
  1508. sed "s/^X//" >'mail/sendmnews' <<'END_OF_FILE'
  1509. X#! /bin/sh
  1510. X# sendmnews destination - uuencode, add trailing N & mail article on stdin to destination
  1511. XPATH=/bin:/usr/bin:/usr/ucb; export PATH
  1512. X
  1513. X(echo ''; uuencode news | sed 's/$/N/') | mail "$1"
  1514. END_OF_FILE
  1515. if test 195 -ne `wc -c <'mail/sendmnews'`; then
  1516.     echo shar: \"'mail/sendmnews'\" unpacked with wrong size!
  1517. fi
  1518. # end of 'mail/sendmnews'
  1519. fi
  1520. if test -f 'newsbin.proto/control/rmgroup' -a "${1}" != "-c" ; then 
  1521.   echo shar: Will not clobber existing file \"'newsbin.proto/control/rmgroup'\"
  1522. else
  1523. echo shar: Extracting \"'newsbin.proto/control/rmgroup'\" \(321 characters\)
  1524. sed "s/^X//" >'newsbin.proto/control/rmgroup' <<'END_OF_FILE'
  1525. X#! /bin/sh
  1526. X# rmgroup group - snuff group
  1527. XF=/tmp/nc$$
  1528. Xadmin=usenet
  1529. X
  1530. Xcat >$F
  1531. XSENDER="`grep '^Sender:' $F | sed 's/^[^:]*: *//'`"
  1532. Xcase "$SENDER" in
  1533. X"")
  1534. X    SENDER="`grep '^From:' $F | sed 's/^[^:]*: *//'`"
  1535. X    ;;
  1536. Xesac
  1537. X
  1538. X# tell the local usenet administrator to do it by hand
  1539. Xecho "rmgroup $1 says $SENDER" | mail $admin
  1540. X
  1541. Xrm -f $F*
  1542. END_OF_FILE
  1543. if test 321 -ne `wc -c <'newsbin.proto/control/rmgroup'`; then
  1544.     echo shar: \"'newsbin.proto/control/rmgroup'\" unpacked with wrong size!
  1545. fi
  1546. # end of 'newsbin.proto/control/rmgroup'
  1547. fi
  1548. if test -f 'newsbin.proto/ctl' -a "${1}" != "-c" ; then 
  1549.   echo shar: Will not clobber existing file \"'newsbin.proto/ctl'\"
  1550. else
  1551. echo shar: Extracting \"'newsbin.proto/ctl'\" \(0 characters\)
  1552. sed "s/^X//" >'newsbin.proto/ctl' <<'END_OF_FILE'
  1553. END_OF_FILE
  1554. if test 0 -ne `wc -c <'newsbin.proto/ctl'`; then
  1555.     echo shar: \"'newsbin.proto/ctl'\" unpacked with wrong size!
  1556. fi
  1557. # end of 'newsbin.proto/ctl'
  1558. fi
  1559. if test -f 'newsbin.proto/mkpdir' -a "${1}" != "-c" ; then 
  1560.   echo shar: Will not clobber existing file \"'newsbin.proto/mkpdir'\"
  1561. else
  1562. echo shar: Extracting \"'newsbin.proto/mkpdir'\" \(343 characters\)
  1563. sed "s/^X//" >'newsbin.proto/mkpdir' <<'END_OF_FILE'
  1564. X#! /bin/sh
  1565. X# mkpdir dir ... - make directory and parents
  1566. XPATH=/bin:/usr/bin:/usr/ucb:/usr/lib/news; export PATH    # must include this file's dir.
  1567. Xstatus=0
  1568. X
  1569. Xfor dir
  1570. Xdo
  1571. X    mkdir "$dir" 2>/dev/null
  1572. X    if test ! -d "$dir"; then
  1573. X        mkpdir "`echo $dir | sed 's;/[^/]*$;;'`"
  1574. X        mkdir "$dir"
  1575. X        if test ! -d "$dir"; then
  1576. X            status=1
  1577. X        fi
  1578. X    fi
  1579. Xdone
  1580. Xexit $status
  1581. END_OF_FILE
  1582. if test 343 -ne `wc -c <'newsbin.proto/mkpdir'`; then
  1583.     echo shar: \"'newsbin.proto/mkpdir'\" unpacked with wrong size!
  1584. fi
  1585. # end of 'newsbin.proto/mkpdir'
  1586. fi
  1587. if test -f 'newsbin.proto/newsreply' -a "${1}" != "-c" ; then 
  1588.   echo shar: Will not clobber existing file \"'newsbin.proto/newsreply'\"
  1589. else
  1590. echo shar: Extracting \"'newsbin.proto/newsreply'\" \(344 characters\)
  1591. sed "s/^X//" >'newsbin.proto/newsreply' <<'END_OF_FILE'
  1592. X#! /bin/sh
  1593. X# newsreply - print return address from news article on stdin
  1594. X# This version assumes a domain mailer (user@host.domain works)
  1595. XF=/tmp/nc$$
  1596. X
  1597. Xcat >$F
  1598. X
  1599. XSENDER="`grep '^Reply-To:' $F | sed 's/^[^:]*://
  1600. Xs/ (.*)//
  1601. X1q' `"
  1602. Xcase "$SENDER" in
  1603. X"")
  1604. X    SENDER="`grep '^From:' $F | sed 's/^[^:]*://
  1605. Xs/ (.*)//
  1606. X1q' `"
  1607. X    ;;
  1608. Xesac
  1609. X
  1610. Xecho "$SENDER"
  1611. Xrm -f $F
  1612. END_OF_FILE
  1613. if test 344 -ne `wc -c <'newsbin.proto/newsreply'`; then
  1614.     echo shar: \"'newsbin.proto/newsreply'\" unpacked with wrong size!
  1615. fi
  1616. # end of 'newsbin.proto/newsreply'
  1617. fi
  1618. if test -f 'newsbin.proto/newsreply.path' -a "${1}" != "-c" ; then 
  1619.   echo shar: Will not clobber existing file \"'newsbin.proto/newsreply.path'\"
  1620. else
  1621. echo shar: Extracting \"'newsbin.proto/newsreply.path'\" \(220 characters\)
  1622. sed "s/^X//" >'newsbin.proto/newsreply.path' <<'END_OF_FILE'
  1623. X#! /bin/sh
  1624. X# newsreply - print return address from news article on stdin
  1625. X# This version is for those without domain mailers
  1626. XF=/tmp/nc$$
  1627. X
  1628. Xcat >$F
  1629. X
  1630. XSENDER="`grep '^Path:' $F | sed 's/^[^:]*://' `"
  1631. X
  1632. Xecho "$SENDER"
  1633. Xrm -f $F
  1634. END_OF_FILE
  1635. if test 220 -ne `wc -c <'newsbin.proto/newsreply.path'`; then
  1636.     echo shar: \"'newsbin.proto/newsreply.path'\" unpacked with wrong size!
  1637. fi
  1638. # end of 'newsbin.proto/newsreply.path'
  1639. fi
  1640. if test -f 'newshist/makefile' -a "${1}" != "-c" ; then 
  1641.   echo shar: Will not clobber existing file \"'newshist/makefile'\"
  1642. else
  1643. echo shar: Extracting \"'newshist/makefile'\" \(353 characters\)
  1644. sed "s/^X//" >'newshist/makefile' <<'END_OF_FILE'
  1645. X# makefile for newshist
  1646. XRN=../rnews
  1647. XCFLAGS=-f68881 -I$(RN)    # for history.h
  1648. XRNEWSOBJS=$(RN)/history.o $(RN)/io.o $(RN)/msgs.o \
  1649. X      $(RN)/clsexec.o $(RN)/memcpy.o $(RN)/string.o
  1650. XLIBOBJS= ../libcnews/*.a ../libc/*.a
  1651. XLIBS=-ldbm
  1652. X
  1653. Xnewshist: newshist.o $(RNEWSOBJS)
  1654. X    $(CC) $(CFLAGS) -o $@ newshist.o $(RNEWSOBJS) $(LIBOBJS) $(LIBS)
  1655. X
  1656. Xclean:
  1657. X    rm -f *.o newshist
  1658. END_OF_FILE
  1659. if test 353 -ne `wc -c <'newshist/makefile'`; then
  1660.     echo shar: \"'newshist/makefile'\" unpacked with wrong size!
  1661. fi
  1662. # end of 'newshist/makefile'
  1663. fi
  1664. if test -f 'rna/lib/itoa.c' -a "${1}" != "-c" ; then 
  1665.   echo shar: Will not clobber existing file \"'rna/lib/itoa.c'\"
  1666. else
  1667. echo shar: Extracting \"'rna/lib/itoa.c'\" \(86 characters\)
  1668. sed "s/^X//" >'rna/lib/itoa.c' <<'END_OF_FILE'
  1669. Xchar *
  1670. Xitoa(i)
  1671. Xint i;
  1672. X{
  1673. X    static char buf[30];
  1674. X
  1675. X    sprintf(buf, "%d", i);
  1676. X    return buf;
  1677. X}
  1678. END_OF_FILE
  1679. if test 86 -ne `wc -c <'rna/lib/itoa.c'`; then
  1680.     echo shar: \"'rna/lib/itoa.c'\" unpacked with wrong size!
  1681. fi
  1682. # end of 'rna/lib/itoa.c'
  1683. fi
  1684. if test -f 'rna/lib/memset.c' -a "${1}" != "-c" ; then 
  1685.   echo shar: Will not clobber existing file \"'rna/lib/memset.c'\"
  1686. else
  1687. echo shar: Extracting \"'rna/lib/memset.c'\" \(238 characters\)
  1688. sed "s/^X//" >'rna/lib/memset.c' <<'END_OF_FILE'
  1689. X/*LINTLIBRARY*/
  1690. X/*
  1691. X * Set an array of n chars starting at sp to the character c.
  1692. X * Return sp.
  1693. X */
  1694. Xchar *
  1695. Xmemset(sp, c, n)
  1696. Xregister char *sp, c;
  1697. Xregister int n;
  1698. X{
  1699. X    register char *sp0 = sp;
  1700. X
  1701. X    while (--n >= 0)
  1702. X        *sp++ = c;
  1703. X    return (sp0);
  1704. X}
  1705. END_OF_FILE
  1706. if test 238 -ne `wc -c <'rna/lib/memset.c'`; then
  1707.     echo shar: \"'rna/lib/memset.c'\" unpacked with wrong size!
  1708. fi
  1709. # end of 'rna/lib/memset.c'
  1710. fi
  1711. if test -f 'rna/makedistr' -a "${1}" != "-c" ; then 
  1712.   echo shar: Will not clobber existing file \"'rna/makedistr'\"
  1713. else
  1714. echo shar: Extracting \"'rna/makedistr'\" \(230 characters\)
  1715. sed "s/^X//" >'rna/makedistr' <<'END_OF_FILE'
  1716. Xp=${1:+$1/}
  1717. Xd='!End!Marker!'
  1718. Xfor f in *
  1719. Xdo
  1720. X    if [ -d $f ]
  1721. X    then
  1722. X        echo "echo 'mkdir $p$f'"
  1723. X        echo "mkdir $p$f"
  1724. X        (cd $f; sh ../makedistr $p$f)
  1725. X    else
  1726. X        echo "echo 'x - $p$f'"
  1727. X        echo "cat > $p$f <<'"$d"'"
  1728. X        cat $f
  1729. X        echo $d
  1730. X    fi
  1731. Xdone
  1732. END_OF_FILE
  1733. if test 230 -ne `wc -c <'rna/makedistr'`; then
  1734.     echo shar: \"'rna/makedistr'\" unpacked with wrong size!
  1735. fi
  1736. # end of 'rna/makedistr'
  1737. fi
  1738. if test -f 'rna/man/uurec.8' -a "${1}" != "-c" ; then 
  1739.   echo shar: Will not clobber existing file \"'rna/man/uurec.8'\"
  1740. else
  1741. echo shar: Extracting \"'rna/man/uurec.8'\" \(308 characters\)
  1742. sed "s/^X//" >'rna/man/uurec.8' <<'END_OF_FILE'
  1743. X.TH UUREC 8
  1744. X.SH NAME
  1745. Xuurec \- receive news articles via mail
  1746. X.SH SYNOPSIS
  1747. X.B /usr/lib/news/uurec
  1748. X.SH DESCRIPTION
  1749. X.I uurec
  1750. Xreads news articles from standard input sent by
  1751. X.IR uusend (8),
  1752. Xdecodes them, and gives each article to
  1753. X.IR postnews (1)
  1754. Xfor insertion.
  1755. X.SH SEE ALSO
  1756. Xpostnews(1), readnews(1),
  1757. Xuusend(8).
  1758. END_OF_FILE
  1759. if test 308 -ne `wc -c <'rna/man/uurec.8'`; then
  1760.     echo shar: \"'rna/man/uurec.8'\" unpacked with wrong size!
  1761. fi
  1762. # end of 'rna/man/uurec.8'
  1763. fi
  1764. if test -f 'rna/rnews.mail1' -a "${1}" != "-c" ; then 
  1765.   echo shar: Will not clobber existing file \"'rna/rnews.mail1'\"
  1766. else
  1767. echo shar: Extracting \"'rna/rnews.mail1'\" \(30 characters\)
  1768. sed "s/^X//" >'rna/rnews.mail1' <<'END_OF_FILE'
  1769. XSubject: Error(s) from rnews
  1770. X
  1771. END_OF_FILE
  1772. if test 30 -ne `wc -c <'rna/rnews.mail1'`; then
  1773.     echo shar: \"'rna/rnews.mail1'\" unpacked with wrong size!
  1774. fi
  1775. # end of 'rna/rnews.mail1'
  1776. fi
  1777. if test -f 'rna/rnews.mail2' -a "${1}" != "-c" ; then 
  1778.   echo shar: Will not clobber existing file \"'rna/rnews.mail2'\"
  1779. else
  1780. echo shar: Extracting \"'rna/rnews.mail2'\" \(21 characters\)
  1781. sed "s/^X//" >'rna/rnews.mail2' <<'END_OF_FILE'
  1782. X
  1783. X------------------
  1784. X
  1785. END_OF_FILE
  1786. if test 21 -ne `wc -c <'rna/rnews.mail2'`; then
  1787.     echo shar: \"'rna/rnews.mail2'\" unpacked with wrong size!
  1788. fi
  1789. # end of 'rna/rnews.mail2'
  1790. fi
  1791. if test -f 'rna/sample.sys' -a "${1}" != "-c" ; then 
  1792.   echo shar: Will not clobber existing file \"'rna/sample.sys'\"
  1793. else
  1794. echo shar: Extracting \"'rna/sample.sys'\" \(302 characters\)
  1795. sed "s/^X//" >'rna/sample.sys' <<'END_OF_FILE'
  1796. Xelecvax:test,general.all,net.all,aus.all,to.elecvax,mod.all,class.all::
  1797. Xbasser:net.all,aus.all,mod.all,to.basser::/usr/lib/news/uusend rnews:basser
  1798. Xelec70a:test,general.all,to.elec70a,class.all::exec net -helec70a -nrnews -f
  1799. Xelec70b:test,general.all,to.elec70b,class.all::exec net -helec70b -nrnews -f
  1800. END_OF_FILE
  1801. if test 302 -ne `wc -c <'rna/sample.sys'`; then
  1802.     echo shar: \"'rna/sample.sys'\" unpacked with wrong size!
  1803. fi
  1804. # end of 'rna/sample.sys'
  1805. fi
  1806. if test -f 'rnews/active.h' -a "${1}" != "-c" ; then 
  1807.   echo shar: Will not clobber existing file \"'rnews/active.h'\"
  1808. else
  1809. echo shar: Extracting \"'rnews/active.h'\" \(132 characters\)
  1810. sed "s/^X//" >'rnews/active.h' <<'END_OF_FILE'
  1811. X/* imports from active */
  1812. Xextern long incartnum();
  1813. X
  1814. X#define nxtartnum(ng) incartnum(ng, 1)
  1815. X#define prevartnum(ng) incartnum(ng, -1)
  1816. END_OF_FILE
  1817. if test 132 -ne `wc -c <'rnews/active.h'`; then
  1818.     echo shar: \"'rnews/active.h'\" unpacked with wrong size!
  1819. fi
  1820. # end of 'rnews/active.h'
  1821. fi
  1822. if test -f 'rnews/ads/README' -a "${1}" != "-c" ; then 
  1823.   echo shar: Will not clobber existing file \"'rnews/ads/README'\"
  1824. else
  1825. echo shar: Extracting \"'rnews/ads/README'\" \(50 characters\)
  1826. sed "s/^X//" >'rnews/ads/README' <<'END_OF_FILE'
  1827. XThese are reproduced verbatim from Aviation Week.
  1828. END_OF_FILE
  1829. if test 50 -ne `wc -c <'rnews/ads/README'`; then
  1830.     echo shar: \"'rnews/ads/README'\" unpacked with wrong size!
  1831. fi
  1832. # end of 'rnews/ads/README'
  1833. fi
  1834. if test -f 'rnews/anews/a.samp' -a "${1}" != "-c" ; then 
  1835.   echo shar: Will not clobber existing file \"'rnews/anews/a.samp'\"
  1836. else
  1837. echo shar: Extracting \"'rnews/anews/a.samp'\" \(103 characters\)
  1838. sed "s/^X//" >'rnews/anews/a.samp' <<'END_OF_FILE'
  1839. XA123@utcs.fun
  1840. Xnet.rec.drugs.crack
  1841. Xucbvax!ucbarpa!foo
  1842. XApr  1 00:00:00 1986
  1843. XWhee!
  1844. XBoy I like this stuff!
  1845. END_OF_FILE
  1846. if test 103 -ne `wc -c <'rnews/anews/a.samp'`; then
  1847.     echo shar: \"'rnews/anews/a.samp'\" unpacked with wrong size!
  1848. fi
  1849. # end of 'rnews/anews/a.samp'
  1850. fi
  1851. if test -f 'rnews/anews/a.samp.to.b' -a "${1}" != "-c" ; then 
  1852.   echo shar: Will not clobber existing file \"'rnews/anews/a.samp.to.b'\"
  1853. else
  1854. echo shar: Extracting \"'rnews/anews/a.samp.to.b'\" \(173 characters\)
  1855. sed "s/^X//" >'rnews/anews/a.samp.to.b' <<'END_OF_FILE'
  1856. XMessage-ID: 123@utcs.fun
  1857. XNewsgroups: net.rec.drugs.crack
  1858. XPath: ucbvax!ucbarpa!foo
  1859. XFrom: ucbvax!ucbarpa!foo
  1860. XDate: Apr  1 00:00:00 1986
  1861. XSubject: Whee!
  1862. X
  1863. XBoy I like this stuff!
  1864. END_OF_FILE
  1865. if test 173 -ne `wc -c <'rnews/anews/a.samp.to.b'`; then
  1866.     echo shar: \"'rnews/anews/a.samp.to.b'\" unpacked with wrong size!
  1867. fi
  1868. # end of 'rnews/anews/a.samp.to.b'
  1869. fi
  1870. if test -f 'rnews/anews/a.to.b' -a "${1}" != "-c" ; then 
  1871.   echo shar: Will not clobber existing file \"'rnews/anews/a.to.b'\"
  1872. else
  1873. echo shar: Extracting \"'rnews/anews/a.to.b'\" \(235 characters\)
  1874. sed "s/^X//" >'rnews/anews/a.to.b' <<'END_OF_FILE'
  1875. X#! /bin/sh
  1876. X# anustob: A-format nus to B-format converter (thanks, Norman)
  1877. XPATH=/bin:/usr/bin:/usr/ucb; export PATH
  1878. X
  1879. Xsed '
  1880. X1s/^A/Message-ID: /
  1881. X2s/^/Newsgroups: /
  1882. X3{
  1883. Xs/^/Path: /p
  1884. Xs/Path/From/
  1885. X}
  1886. X4s/^/Date: /
  1887. X5{
  1888. Xs/^/Subject: /p
  1889. Xs/.*//
  1890. X}
  1891. X'
  1892. END_OF_FILE
  1893. if test 235 -ne `wc -c <'rnews/anews/a.to.b'`; then
  1894.     echo shar: \"'rnews/anews/a.to.b'\" unpacked with wrong size!
  1895. fi
  1896. # end of 'rnews/anews/a.to.b'
  1897. fi
  1898. if test -f 'rnews/anews/b.samp' -a "${1}" != "-c" ; then 
  1899.   echo shar: Will not clobber existing file \"'rnews/anews/b.samp'\"
  1900. else
  1901. echo shar: Extracting \"'rnews/anews/b.samp'\" \(208 characters\)
  1902. sed "s/^X//" >'rnews/anews/b.samp' <<'END_OF_FILE'
  1903. XPath: ucbvax!ucbarpa!foo
  1904. XFrom: ucbvax!ucbarpa!foo
  1905. XSubject: Whee!
  1906. XNewsgroups: net.rec.drugs.crack
  1907. XMessage-ID: 123@utcs.fun
  1908. XDate: Apr  1 00:00:00 1986
  1909. XHideous-Name: #@$%ucbarpa^edu&*foo
  1910. X
  1911. XBoy I like this stuff!
  1912. END_OF_FILE
  1913. if test 208 -ne `wc -c <'rnews/anews/b.samp'`; then
  1914.     echo shar: \"'rnews/anews/b.samp'\" unpacked with wrong size!
  1915. fi
  1916. # end of 'rnews/anews/b.samp'
  1917. fi
  1918. if test -f 'rnews/anews/b.samp.to.a' -a "${1}" != "-c" ; then 
  1919.   echo shar: Will not clobber existing file \"'rnews/anews/b.samp.to.a'\"
  1920. else
  1921. echo shar: Extracting \"'rnews/anews/b.samp.to.a'\" \(102 characters\)
  1922. sed "s/^X//" >'rnews/anews/b.samp.to.a' <<'END_OF_FILE'
  1923. XA123@utcs.fun
  1924. Xnet.rec.drugs.crack
  1925. Xucbvax!ucbarpa!foo
  1926. XApr 1 00:00:00 1986
  1927. XWhee!
  1928. XBoy I like this stuff!
  1929. END_OF_FILE
  1930. if test 102 -ne `wc -c <'rnews/anews/b.samp.to.a'`; then
  1931.     echo shar: \"'rnews/anews/b.samp.to.a'\" unpacked with wrong size!
  1932. fi
  1933. # end of 'rnews/anews/b.samp.to.a'
  1934. fi
  1935. if test -f 'rnews/bugs/zeropad/bugged/zeropad.c' -a "${1}" != "-c" ; then 
  1936.   echo shar: Will not clobber existing file \"'rnews/bugs/zeropad/bugged/zeropad.c'\"
  1937. else
  1938. echo shar: Extracting \"'rnews/bugs/zeropad/bugged/zeropad.c'\" \(79 characters\)
  1939. sed "s/^X//" >'rnews/bugs/zeropad/bugged/zeropad.c' <<'END_OF_FILE'
  1940. X/*
  1941. X * zero-padding printf format(s) (broken)
  1942. X */
  1943. X
  1944. Xchar ldzeropad[] = "%*.*ld";
  1945. END_OF_FILE
  1946. if test 79 -ne `wc -c <'rnews/bugs/zeropad/bugged/zeropad.c'`; then
  1947.     echo shar: \"'rnews/bugs/zeropad/bugged/zeropad.c'\" unpacked with wrong size!
  1948. fi
  1949. # end of 'rnews/bugs/zeropad/bugged/zeropad.c'
  1950. fi
  1951. if test -f 'rnews/bugs/zeropad/okay/zeropad.c' -a "${1}" != "-c" ; then 
  1952.   echo shar: Will not clobber existing file \"'rnews/bugs/zeropad/okay/zeropad.c'\"
  1953. else
  1954. echo shar: Extracting \"'rnews/bugs/zeropad/okay/zeropad.c'\" \(84 characters\)
  1955. sed "s/^X//" >'rnews/bugs/zeropad/okay/zeropad.c' <<'END_OF_FILE'
  1956. X/*
  1957. X * zero-padding printf format(s) (non-broken)
  1958. X */
  1959. X
  1960. Xchar ldzeropad[] = "%0*.*ld";
  1961. END_OF_FILE
  1962. if test 84 -ne `wc -c <'rnews/bugs/zeropad/okay/zeropad.c'`; then
  1963.     echo shar: \"'rnews/bugs/zeropad/okay/zeropad.c'\" unpacked with wrong size!
  1964. fi
  1965. # end of 'rnews/bugs/zeropad/okay/zeropad.c'
  1966. fi
  1967. if test -f 'rnews/caches.c' -a "${1}" != "-c" ; then 
  1968.   echo shar: Will not clobber existing file \"'rnews/caches.c'\"
  1969. else
  1970. echo shar: Extracting \"'rnews/caches.c'\" \(246 characters\)
  1971. sed "s/^X//" >'rnews/caches.c' <<'END_OF_FILE'
  1972. X/*
  1973. X * cache control
  1974. X */
  1975. X
  1976. X#include <stdio.h>
  1977. X#include <sys/types.h>
  1978. X#include "news.h"
  1979. X
  1980. Xint
  1981. Xloadcaches()                /* reload in-core caches from disk */
  1982. X{
  1983. X    return artload();
  1984. X}
  1985. X
  1986. Xint
  1987. Xsynccaches()                /* force in-core caches to disk */
  1988. X{
  1989. X    return artsync();
  1990. X}
  1991. END_OF_FILE
  1992. if test 246 -ne `wc -c <'rnews/caches.c'`; then
  1993.     echo shar: \"'rnews/caches.c'\" unpacked with wrong size!
  1994. fi
  1995. # end of 'rnews/caches.c'
  1996. fi
  1997. if test -f 'rnews/cpu.h' -a "${1}" != "-c" ; then 
  1998.   echo shar: Will not clobber existing file \"'rnews/cpu.h'\"
  1999. else
  2000. echo shar: Extracting \"'rnews/cpu.h'\" \(108 characters\)
  2001. sed "s/^X//" >'rnews/cpu.h' <<'END_OF_FILE'
  2002. X/*
  2003. X * CPU-specific definitions
  2004. X */
  2005. X
  2006. X#ifndef MAXLONG
  2007. X#define MAXLONG ((long)(~(unsigned long)0 >> 1))
  2008. X#endif
  2009. END_OF_FILE
  2010. if test 108 -ne `wc -c <'rnews/cpu.h'`; then
  2011.     echo shar: \"'rnews/cpu.h'\" unpacked with wrong size!
  2012. fi
  2013. # end of 'rnews/cpu.h'
  2014. fi
  2015. if test -f 'rnews/distr' -a "${1}" != "-c" ; then 
  2016.   echo shar: Will not clobber existing file \"'rnews/distr'\"
  2017. else
  2018. echo shar: Extracting \"'rnews/distr'\" \(0 characters\)
  2019. sed "s/^X//" >'rnews/distr' <<'END_OF_FILE'
  2020. END_OF_FILE
  2021. if test 0 -ne `wc -c <'rnews/distr'`; then
  2022.     echo shar: \"'rnews/distr'\" unpacked with wrong size!
  2023. fi
  2024. # end of 'rnews/distr'
  2025. fi
  2026. if test -f 'rnews/history.h' -a "${1}" != "-c" ; then 
  2027.   echo shar: Will not clobber existing file \"'rnews/history.h'\"
  2028. else
  2029. echo shar: Extracting \"'rnews/history.h'\" \(68 characters\)
  2030. sed "s/^X//" >'rnews/history.h' <<'END_OF_FILE'
  2031. X/* imports from history */
  2032. Xextern char *findfiles(), *gethistory();
  2033. END_OF_FILE
  2034. if test 68 -ne `wc -c <'rnews/history.h'`; then
  2035.     echo shar: \"'rnews/history.h'\" unpacked with wrong size!
  2036. fi
  2037. # end of 'rnews/history.h'
  2038. fi
  2039. if test -f 'rnews/msgs.c' -a "${1}" != "-c" ; then 
  2040.   echo shar: Will not clobber existing file \"'rnews/msgs.c'\"
  2041. else
  2042. echo shar: Extracting \"'rnews/msgs.c'\" \(301 characters\)
  2043. sed "s/^X//" >'rnews/msgs.c' <<'END_OF_FILE'
  2044. X/*
  2045. X * print common messages
  2046. X */
  2047. X
  2048. X#include <stdio.h>
  2049. X#include <sys/types.h>
  2050. X#include "news.h"
  2051. X
  2052. Xint
  2053. Xfulldisk(status, file)        /* complain once & set ST_DISKFULL */
  2054. Xint status;
  2055. Xchar *file;
  2056. X{
  2057. X    if (!(status&ST_DISKFULL))
  2058. X        (void) warning("disk filled when writing %s", file);
  2059. X    return status | ST_DISKFULL;
  2060. X}
  2061. END_OF_FILE
  2062. if test 301 -ne `wc -c <'rnews/msgs.c'`; then
  2063.     echo shar: \"'rnews/msgs.c'\" unpacked with wrong size!
  2064. fi
  2065. # end of 'rnews/msgs.c'
  2066. fi
  2067. echo shar: End of archive 1 \(of 14\).
  2068. ##  End of shell archive.
  2069. exit 0
  2070.